Professional Documents
Culture Documents
Un programa es una secuencia de instrucciones, escritas para realizar una tarea específica con una computadora. Este dispositivo
requiere programas para funcionar, por lo general ejecutando las instrucciones del programa en un procesador central. El
programa tiene un formato ejecutable que la computadora puede utilizar directamente para ejecutar las instrucciones. El mismo
programa en su formato de código fuente legible para humanos, del cual se derivan los programas ejecutables (por ejemplo,
compilados), le permite a un programador estudiar y desarrollar sus algoritmos. Una colección de programas de computadora y
datos relacionados se conoce como software.
Generalmente, el código fuente lo escriben profesionales conocidos como programadores de computadora. Este código se escribe
en un lenguaje de programación que sigue uno de los siguientes dos paradigmas: imperativo o declarativo, y que posteriormente
puede ser convertido en un archivo ejecutable (usualmente llamado un programa ejecutable o un binario) por un compilador y
más tarde ejecutado por una unidad central de procesamiento. Por otra parte, los programas de computadora se pueden ejecutar
con la ayuda de un intérprete, o pueden ser empotrados directamente en hardware.
De acuerdo a sus funciones, los programas informáticos se clasifican en software de sistema y software de aplicación. En las
computadoras actuales, al hecho de ejecutar varios programas de forma simultánea y eficiente, se le conoce como multitarea.
PROGRAMACION:
La programación de computadoras es el proceso iterativo de escribir o editar código fuente. Dicha edición de código fuente
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 la 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.
El código fuente de un programa informático (o software) es un conjunto de líneas de texto que son las instrucciones que debe
seguir la computadora para ejecutar dicho programa. Por tanto, en el código fuente de un programa está escrito por completo su
funcionamiento.
El código fuente de un programa que está escrito por un programador en algún lenguaje de programación, pero en este primer
estado no es directamente ejecutable por la computadora, sino que debe ser traducido a otro lenguaje o código binario así será
más fácil para la máquina interpretarlo (el lenguaje máquina o código objeto) que sí pueda ser ejecutado por el hardware de la
computadora. Para esta traducción se usan los llamados compiladores, ensambladores, intérpretes y otros sistemas de traducción.
El término código fuente también se usa para hacer referencia al código fuente de otros elementos del software, como por
ejemplo el código fuente de una página web que está escrito en el lenguaje de marcado HTML o en Javascript u otros lenguajes de
programación web y que es posteriormente ejecutado por el navegador web para visualizar dicha página cuando es visitada.
El área de la informática que se dedica a la creación de programas y, por tanto a la creación de su código fuente, es la
programación.
La programación informática, acortada como programación, es el proceso de diseñar, codificar, depurar y mantener
el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El
propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir
código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar,
algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y
diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas
aplicaciones.
Del proceso de programación surge lo que comúnmente se conoce como software (conjunto de programas), aunque
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un
programa normalmente implementa (traduce a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo
puede expresarse de distintas maneras: en forma gráfica, como un diagrama de flujo, en forma de código como en pseudocódigo
o un lenguaje de programación, en forma explicativa, etc.
Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de
las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y
se conoce como "refino progresivo".
VARIABLE:
Variable (programación)
En programación, una variable está formada por un espacio en el sistema de almacenaje (memoria principal de un ordenador) y
un nombre simbólico (un identificador) que está asociado a dicho espacio. Ese espacio contiene una cantidad o información
conocida o desconocida, es decir un valor. El nombre de la variable es la forma usual de referirse al valor almacenado: esta
separación entre nombre y contenido permite que el nombre sea usado independientemente de la información exacta que
representa. El identificador, en el codigo fuente de la computadora puede estar ligado a un valor durante el tiempo de ejecución y
el valor de la variable puede por lo tanto cambiar durante el curso de la ejecución del programa. El concepto de variables en
computación puede no corresponder directamente al concepto de variables en matemática. El valor de una variable en
computación no es necesariamente parte de una ecuación o fórmula como en matemáticas. En computación una variable puede
ser utilizada en un proceso repetitivo: puede asignársele un valor en un sitio, ser luego utilizada en otro, más adelante
reasignársele un nuevo valor para más tarde utilizarla de la misma manera. Procedimientos de este tipo son conocidos con el
nombre de iteración. En programación de computadoras, a las variables, frecuentemente se le asignan nombres largos para
hacerlos relativamente descriptivas para su uso, mientras que las variables en matemáticas a menudo tienen nombres escuetos,
formados por uno o dos caracteres para hacer breve en su transcripción y manipulación.
En programación, una variable es un espacio de memoria reservado para almacenar un valor que corresponde a un tipo de dato
soportado por el lenguaje de programación. Una variable es representada y usada a través de una etiqueta (un nombre) que le
asigna un programador o que ya viene predefinida. Por ejemplo, en la variable de nombre "num", se almacena el número 8 (de
tipo entero). De forma genérica, para utilizarla y sumarle un uno se debería programar: num = num + 1. Una variable puede ser del
tipo boleano, entero, decimal de coma flotante, caracter, cadena de texto, arreglo, matriz, tipo definido por el usuario, etc. Estos
son tipos de datos. Una variable, por lo general, como su nombre lo indica, puede variar su valor durante la ejecución del
programa. Dependiendo del lenguaje de programación usado, también puede cambiar el tipo de dato que almacena.
NOMBRES DE VARIABLES
Una variable es un espacio de la memoria del ordenador a la que asignamos un contenido que puede ser un valor
numérico (sólo números, con su valor de cálculo) o alfanumérico (sólo texto o texto con números). Cada variable tiene
un único nombre el cual no puede ser cambiado. Dos o más variables pueden tener el mismo contenido, pero no el
mismo nombre. El nombre de una variable comenzará siempre por una letra, pudiendo contener a continuación tanto
Las letras pueden ser tanto mayúsculas como minúsculas. No se admiten nombres de variables incluyendo espacios en
blanco ni símbolos especiales como guiones, puntos, comas, comillas, etc. ni símbolos matemáticos ni palabras clave
(que veremos más adelante, y que incluyen “inicio”, “fin”, “verdadero”, “falso”, “entonces”...). El nombre de una
variable será lo suficientemente largo como para impedir que pueda confundirse con otra variable por tener nombre
similar, así como para aportar una indicación de cuál es el contenido o función que cumple.
AMC12 Válido
AM12C Válido
(dos variables)
coches Válido
motos
(dos variables)
Tasaver
(cuatro variables)
c
Válido, pero a priori no recomendable porque no aportan información de
n
contenido o función
t
(cuatro variables)
coches
taxis
aviones
CONSTANTE:
En programación, una constante es un valor que no puede ser alterado durante la ejecución
de un programa.
Básicamente el uso de las constantes es igual que en las matemáticas. La constante toma un
valor determinado y lo mantiene durante todo el problema (ej: PI = 3,1416). El hecho de que
sean constantes permite conocer su valor independientemente de la situación. Lo mismo
sucede en informática, donde el ordenador siempre conocerá cual es el valor de las
constantes, establecido de antemano en el código del programa, y guardado en una zona de
este, de donde puede leerlo en cualquier momento. También existen constantes cuyo valor es
desconocido inicialmente, pero una vez hallado, se comportan como tales. En estes casos, los
programas lo que indican en su código es el modo de hallar esas constantes y no su valor. Una
vez hallado, será almacenado junto con el resto, en la misma dirección de memoria.
Cada lenguaje de programación tiene normas propias sobre como denominar tanto a las
constantes como a las variables. Se suelen dotar de un nombre para identificarlas y tener
rápido acceso a ellas en caso de ser solicitadas. Si en física y matemáticas las constantes eran
expresadas con letras mayúsculas, lo cierto es que en programación el nombre suele ser
descriptivo (Ej: NUMEROSOCIO, DNI...etc), sobre todo por comodidad del programador. Con
excepciones de caracteres especiales o nombres reservados para ciertas funciones del
lenguaje (ej: if, else...), casi cualquier nombre puede ser usado. Esos nombres que designan
tanto a constantes como variables se llaman identificadores.
El valor de las constantes pueden ser numérico, pero también texto, condicionantes, una
función... y en general se pueden usar para cualquier tipo de datos. La ventaja de usar
constantes en vez de poner el valor directamente es que si definimos una constante y le
damos un valor, este es automáticamente substituido por esa constante en todo el programa,
y queda inmerso en el código, liberando al procesador de tener que leer direcciones de
memoria para ver el valor, lo cual acelera enormemente el proceso. Además también libera al
programador de tener que escribir datos, que pueden ser muy extensos, repetitivamente cada
vez que quiera usar ese valor; con simplemente poner el identificador de la constante ya
estaría.
ACUMULADOR:
Acumuladores
Se utiliza para efectuar sumas sucesivas. La principal diferencia con el contador es que el
incremento o decremento de cada suma es variable en lugar de constante como en el caso del
contador. En computación, un acumulador es un registro en donde se almacenan los
resultados lógicos y aritméticos intermedios. Sin un registro acumulador, sería necesario
escribir el resultado de cada cálculo (suma, multiplicación, etc.) en la memoria primaria, tal vez
para leerse y ser usado sólo para la siguiente operación. Acceder a la memoria primaria es más
lento que acceder a un registro acumulador, porque la tecnología utilizada para la memoria
primaria (que es más grande, pero más barata) es más lenta.
CONTADOR:
El contador de programa (en inglés Program Counter o PC), también llamado Puntero de
instrucciones (Instruction Pointer), parte del secuenciador de instrucciones en algunas
computadoras, es un registro del procesador de un computador que indica la posición donde
está el procesador en su secuencia de instrucciones. Dependiendo de los detalles de la
máquina particular, contiene o la dirección de la instrucción que es ejecutada, o la dirección
de la próxima instrucción a ser ejecutada. El contador de programa es incrementado
automáticamente en cada ciclo de instrucción de tal manera que las instrucciones son leídas
en secuencia desde la memoria. Ciertas instrucciones, tales como las bifurcaciones y las
llamadas y retornos de subrutinas, interrumpen la secuencia al colocar un nuevo valor en el
contador de programa.
Contador:
Es una variable que está en ambos miembros de una asignación interna, a la que se le suma
un valor constante. Es necesario haber inicializado en un momento previo a esta variable, ya
que va a ser leído su contenido.
c <-- 0;
REPITA
c <-- c + 1
ALGORITMO:
Algoritmo
Los diagramas de flujo sirven para representar algoritmos de manera gráfica.
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos
utilizando modelos matemáticos. Esto fue realizado por Alonzo Church en 1936 con el
concepto de "calculabilidad efectiva" basada en su cálculo lambda y por Alan Turing basándose
en la máquina de Turing. Los dos enfoques son equivalentes, en el sentido en que se pueden
resolver exactamente los mismos problemas con ambos enfoques.8 9 Sin embargo, estos
modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas
mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de
datos.3 1 En general, la parte común en todas las definiciones se puede resumir en las
siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:7
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una
estructura de primer orden y cada algoritmo es independiente de su implementación (los
algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer
orden son invariantes bajo isomorfismo.
Exploración acotada. La transición de un estado al siguiente queda completamente
determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente
solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado
actual.
En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se
pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y
además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un
solo paso. Esta amplia definición abarca tanto a algoritmos prácticos como aquellos que solo
funcionan en teoría, por ejemplo el método de Newton y la eliminación de Gauss-Jordan
funcionan, al menos en principio, con números de precisión infinita; sin embargo no es posible
programar la precisión infinita en una computadora, y no por ello dejan de ser algoritmos.10
En particular es posible considerar una cuarta propiedad que puede ser usada para validar la
tesis de Church-Turing de que toda función calculable se puede programar en una máquina de
Turing (o equivalentemente, en un lenguaje de programación suficientemente general):10
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural,
pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones
en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de
flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más
estructuradas para representar algoritmos; no obstante, se mantienen independientes de un
lenguaje de programación específico.
Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran
la solución.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis
de complejidad o ambos.
Diagrama de flujo[editar]
Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con
flechas para indicar la secuencia de instrucciones y están regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan
mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como
introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas
ajenas a la computación.
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural,
pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones
en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de
flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más
estructuradas para representar algoritmos; no obstante, se mantienen independientes de un
lenguaje de programación específico.
Pseudocódigo[editar]
El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto
nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones
sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales,
aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y
publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo,
como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que
los algoritmos descritos en pseudocódigo requieren menos espacio para representar
instrucciones complejas.
DIAGRAMA DE FLUJO:
En SysML el diagrama ha sido extendido para indicar flujos entre pasos que mueven elementos
físicos (p.ej., gasolina) o energía (p.ej., presión). Los cambios adicionales permiten al diagrama
soportar mejor flujos de comportamiento y datos continuos.
Estos diagramas utilizan símbolos con significados definidos que representan los pasos del
algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de
inicio y de fin de proceso.
Normas de trabajo[editar]
Un diagrama de flujo presenta generalmente un único punto de inicio y un único punto de
cierre, aunque puede tener más, siempre que cumpla con la lógica requerida.
Identificar las ideas principales al ser incluidas en el diagrama de flujo. Deben estar
presentes el autor o responsable del proceso, los autores o responsables del proceso
anterior y posterior y de otros procesos interrelacionados, así como las terceras partes
interesadas.
Definir qué se espera obtener del diagrama de flujo.
Identificar quién lo empleará y cómo.
Establecer el nivel de detalle requerido.
Determinar los límites del proceso a describir.
Formato vertical: En él, el flujo y la secuencia de las operaciones, va de arriba hacia abajo. Es
una lista ordenada de las operaciones de un proceso con toda la información que se considere
necesaria, según su propósito.
Formato panorámico: El proceso entero está representado en una sola carta y puede
apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su
comprensión, aun para personas no familiarizadas. Registra no solo en línea vertical, sino
también horizontal, distintas acciones simultáneas y la participación de más de un puesto o
departamento que el formato vertical no registra.
Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el plano
arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente
descriptivo, mientras que los utilizados son fundamentalmente representativos.
INSTRUCCIÓN:
Los tipos de instrucción permitidos están definidos y determinados dentro de cada plataforma
en el conjunto de instrucciones (en inglés ISA, instruction set architecture), que también
determina los registros de origen y destino de la CPU, y en ocasiones un dato inmediato
(aquellos que son especificados explícitamente en la instrucción).
Estas instrucciones del computador son las que determinan el funcionamiento de la CPU que
las ejecuta. La CPU puede realizar una diversidad de funciones, que son el reflejo de la variedad
de las instrucciones definidas para dicha CPU. El programador tiene un repertorio de
instrucciones como medio para controlar la CPU.