¿Que es un diagrama?
Un diagrama (del latín diagramma, y este del griego διάγραμμα -"diseño"-) es un dibujo geométrico, muy utilizado en ciencia, en educación y en comunicación; con el que se obtiene la representación gráfica de una proposición, de la resolución de un problema, de las relaciones entre las diferentes partes o elementos de un conjunto o sistema, o de la regularidad en la variación de un fenómeno que permite establecer algún tipo de ley.
Hay diagramas que representan datos numéricos tabulados en algún tipo de esquema de información, otros que aportan sobre todo una ilustración visual, utilizando distintos recursos, como el diagrama de flujo (que suele utilizar flechas), el mapa mental, el mapa conceptual o el cuadro sinóptico, entre otros.
¿Que es un Diagrama de Flujo?
El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía,procesos industriales y psicología cognitiva. En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general.
En SysML el diagrama de actividades 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.
Tipos de diagramas de flujo
- 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 horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a derecha.
- 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.
Símbolos para la Elaboración de Diagramas de Flujo
Por Ejemplo: Diagrama de Flujo Sencillo
Diagrama de flujo sencillo con los pasos a seguir si una lámpara no funciona.
Conceptos Fundamentales de Programación en Visual Basic.
Programa
Un programa en término derivado del latín programma que, a su vez, tiene su origen en un vocablo griego, posee múltiples acepciones. Puede ser entendido como el anticipo de lo que se planea realizar en algún ámbito o circunstancia; el temario que se ofrece para un discurso; la presentación y organización de las materias de un cierto curso o asignatura; y la descripción de las características o etapas en que se organizan determinados actos o espectáculos artísticos.
Un programa también consiste en una unidad temática desarrollada durante una emisión televisiva o radial, además de permitir nombrar al grupo de instrucciones que le posibilita a una computadora desarrollar diferentes funciones.
Tipos
Los tipos o técnicas de programación son bastante variados, aunque puede que muchos de los lectores sólo conozcan una metodología para realizar programas. En la mayoría de los casos, las técnicas se centran en programación modular y programación estructurada, pero existen otros tipos de programación. Los explicaremos a lo largo del artículo.
Programación estructurada (PE)
La programación estructurada está compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo.
Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores.
Esta técnica incorpora:
- Diseño descendente (top-dow): el problema se
descompone en etapas o estructuras jerárquicas.
- Recursos abstractos (simplicidad): consiste en
descompones las acciones complejas en otras más simples capaces de ser
resueltas con mayor facilidad.
- Estructuras básicas: existen tres tipos de
estructuras básicas:
- Estructuras secuénciales: cada acción sigue a otra
acción secuencialmente. La salida de una acción es la entrada de otra.
- Estructuras selectivas: en estas estructuras se
evalúan las condiciones y en función del resultado de las mismas se
realizan unas acciones u otras. Se utilizan expresiones lógicas.
- Estructuras repetitivas: son secuencias de
instrucciones que se repiten un número determinado de veces.
Las principales ventajas de la programación estructurada son:
- Los programas son más fáciles de entender
- Se reduce la complejidad de las pruebas
- Aumenta la productividad del programador
- Los programas queden mejor documentados internamente.
Un
programa está estructurado si posee un único punto de entrada y sólo uno de
salida, existen de "1 a n" caminos desde el principio hasta el fin
del programa y por último, que todas las instrucciones son ejecutables sin que
aparezcan bucles infinitos.
Programación modular
En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad. En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros. A su vez cada módulo puede contener sus propios datos y llamar a otros módulos o funciones.
Programación orientada a objetos (POO)
Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos. El elemento principal de la programación orientada a objetos, es el objeto. El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización. Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento. El polimorfismo y la herencia son unas de sus principales características y por ello dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos.
Programación concurrente
Programación funcional
Programación lógica
Se suele utilizar en la
inteligencia artificial y pequeños programas infantiles. Se trata de una
programación basada en el cálculo de predicados (una teoría matemática que
permite lograr que un ordenador basándose en hecho y reglas lógicas.
Partes de un Programa
Introducción
En este tema se presenta una introducción a
Pascal: ¿qué es un lenguaje de
programación?, un poco de historia sobre
Pascal, ¿qué es compilar un programa, etc. Si no te interesa, puedes saltarlo
ya que no es demasiado importante.
|
Entrada y salida de datos
Aquí aprenderás a comunicarte con el usuario a través de
tus programas. ¿Cómo? Pues a través de unos procedimientos que te permiten
leer y escribir datos en
la salida y entrada estándar respectivamente.
|
Estructura de un programa
En este apartado podrás aprender de qué partes consta un
programa en Pascal. Verás el orden en el que se escriben, en qué consisten,
cuáles son obligatorias y cuáles no, cómo se relacionan unas con otras, etc.
|
Sentencias y expresiones
En este tema se muestran los tipos de sentencias, de
expresiones y de operadores que puedes utilizar en tus programas. Estos tres
conceptos están relacionados, ya que los operadores se usan en expresiones, y
éstas a su vez en sentencias.
|
Variables y constantes
|
Control del flujo
En este tema aprenderás a que tus programas puedan variar
el orden de su ejecución si se cumplen ciertas condiciones (sentencias
selectivas). Y también aprenderás a repetir algo varias veces (sentencias
iterativas).
|
Tipos de datos
En este capítulo verás lo que es un tipo de dato. Este es
un concepto muy importante en cualquier lenguaje de
programación, especialmente en Pascal que es un lenguaje fuertemente tipeado.
|
Programación modular
Aquí conocerás cómo construír pequeños programas
(procedimientos y funciones) que ayuden a solucionar un problema grande
dividiéndolo en subproblemas
|
Instrucciones de Control
Las instrucciones de control son
aquellas que nos permiten variar o alterar la secuencia normal de ejecución de
un programa. Prácticamente la totalidad de lenguajes de programación de alto
nivel soportan tres tipos de instrucciones de control:
- Instrucciones condicionales o alternativas.
- Instrucciones de salto.
- Instrucciones repetitivas.
Instrucciones Condicionales o Alternativas:
1.- Alternativa simple:
Se evalúa una condición, ejecutándose un grupo de sentencias si el
resultado es “verdadero”, y no ejecutándose este grupo de sentencias si el
resultado es “falso”.
2.- Alternativa doble:
Se evalúa la condición, ejecutándose un grupo de sentencias si el resultado
es “verdadero”, y ejecutándose otro grupo alternativo de sentencias si el
resultado es “falso”.
3.- Alternativa múltiple (o selector):
En lugar de una condición, se evalúa una expresión con
múltiples pero finitos resultados, ejecutándose en función del resultado de la
expresión, un grupo de sentencias entre múltiples posibles.
Instrucciones alternativas
anidadas:
También es posible utilizar la instrucción Si-Sino para diseñar estructuras
de selecciones entre más de dos alternativas. Esto se consigue mediante las estructuras
anidadas, donde tanto la rama Si como la Si no pueden contener a su vez otra
instrucción Si-Sino, y así sucesivamente un número determinado de veces.
Instrucciones de Salto:
Se utilizan para realizar un salto, es decir, para transferir el control a
un punto del programa donde seguirá la ejecución del mismo, pero perdiendo toda
posibilidad de retornar de forma controlada la ejecución del programa al punto
de llamada.
No se aconseja su utilización porque crean un código difícil de leer y
mantener, estando su uso muy restringido en programación estructurada.
Instrucciones Repetitivas:
Este tipo de instrucciones también son conocidas como bucles, ciclos o
lazos. Lo que hacen es que mientras se verifique una condición, un segmento del
algoritmo o programa se repita consecutivamente.
En cada repetición del bucle (o iteración) se evalúa la expresión de
control del bucle (o condición), que determinará si continuamos realizando otra
iteración o bien salimos definitivamente del bucle.
Instrucciones ejecutables
Una instrucción ejecutable realiza una acción. Puede llamar a un procedimiento, bifurcar a otra parte del código, recorrer varias instrucciones con un bucle o evaluar una expresión. Una instrucción de asignación es un caso especial de una instrucción ejecutable.En el ejemplo siguiente se utiliza una estructura de control If...Then...Else para ejecutar diferentes bloques de código basándose en el valor de una variable. En cada bloque de código, un bucle For...Next se ejecuta un número especificado de veces.
VB
Public Sub startWidget(ByVal aWidget As widget, _
ByVal clockwise As Boolea, ByVal revolutions As Integer)
Dim counter As Integer
If clockwise = True Then
For counter = 1 To revolutions
aWidget.spinClockwise()
Next counter
Else
For counter = 1 To revolutions
aWidget.spinCounterClockwise()
Next counter
End If
End Sub
Programación declarativa
La Programación Declarativa, en contraposición a la programación imperativa
es un paradigma de programación que está basado en el desarrollo de programas especificando
o "declarando" un conjunto de condiciones, proposiciones,
afirmaciones, restricciones, ecuaciones o transformaciones que describen el
problema y detallan su solución. La solución es obtenida mediante mecanismos
internos de control, sin especificar exactamente cómo encontrarla (tan sólo se
le indica a la computadora qué es lo que se desea obtener o qué es lo que se
está buscando). No existen asignaciones destructivas, y las variables son
utilizadas con Transparencia referencial.
Constantes
Una constante es
un dato cuyo valor no puede cambiar durante la ejecución del programa. Recibe
un valor en el momento de la compilación y este permanece inalterado durante
todo el programa.
Como ya se ha comentado en el
tema sobre las partes
de un programa, las constantes se declaran en una sección que comienza con
la palabra reservada const. Después de declarar una constante ya
puedes usarla en el cuerpo
principal del programa. Tienen varios usos: ser miembro en una expresion, en una comparación, asignar su
valor a una variable, etc.
En el siguiente ejemplo se contemplan varios
casos:
const
Min = 0;
Max = 100;
Sep = 10;
var
i : integer;
begin
i := Min;
while i < Max
do begin
writeln(i);
i := i + Sep
end
end.
En este ejemplo se declaran tres constantes (Min,
Max y Sep). En la primera línea del cuerpo del programa se asigna una
constante a una variable. En la siguiente, se usa una constante en una
comparación. Y en la cuarta, la constante Sep interviene en
una expresión que se asigna a una variable. El resultado de
ejecutar este programa sería una impresión en pantalla de los números: 0,
10, 20, 30, 40, 50, 60, 70, 80 y 90.
Se puede hacer
una división de las constantes en tres clases:
- constantes literales (sin
nombre)
- constantes declaradas (con
nombre)
- constantes expresión
Variables
Una variable es
un nombre asociado a un elemento de datos que está situado en posiciones
contiguas de la memoria principal, y su valor puede cambiar durante la
ejecución de un programa.
Toda variable pertenece a
un tipo
de dato concreto. En la declaración de una variable se debe indicar el
tipo al que pertenece. Así tendremos variables enteras, reales, booleanas, etc.
Por otro lado, distinguimos tres partes fundamentales en la vida de una
variable:
Declaración de variables
Esta es la primera fase en la
vida de cualquier variable. La declaración se realiza en la sección que
comienza con la palabra var. Si quieres más información, puedes ir
al apartado que trata sobre la declaración
de variables en el tema Estructura de un programa.
Nota: Toda variable que
vaya a ser utilizada en Pascal tiene que ser previamente declarada.
Esto no es más que darle un valor
inicial a una variable. Así como lo primero que se hace con una variable es
declararla, lo siguiente tiene que ser iniciarla. Esto se hace para evitar
posibles errores en tiempo de ejecución, pues una variable tiene un valor indeterminado después
de declararla. Principalmente, existen dos maneras de otorgar valores iniciales
a variables:
- Mediante una sentencia de asignación
- Mediante uno de los procedimientos de entrada de
datos (read o readln)
begin
...
i:=1;
readln(n);
while i < n do
begin
(* cuerpo del
bucle *)
i := i + 1
end;
...
end.
Utilización de variables
Una vez declarada e iniciada una
variable, es el momento de utilizarla. Esta es la parte que presenta un mayor
abanico de posibilidades Expresión aritmética a aquella donde los operadores que intervienen
en ella son numéricos, el resultado es un número y los operadores son
aritméticos. Los operadores aritméticos más comúnmente utilizados son: + , - ,
* , / y %.
El signo más (+) se emplea para
adicionar dos valores, el signo menos (-) para restar un valor de otro, el
asterisco (*) para multiplicar dos valores, la división (/) para dividir un
valor por otro, y el signo % para obtener el resto de una división entera.
Estos símbolos se conocen como operadores binarios, pues operan sobre dos
valores o variables.
La lista siguiente son ejemplos
de expresiones aritméticas:
resultado = x - y;
total = capital+ interés;
cuadrado = x * x;
celcius = (fahrenheit - 32) / 1.8
Hay que comprender que el signo
igual (=) en las expresiones anteriores se le conoce como
"operador de asignación". Asigna el valor de la derecha de dicho
signo igual a la variable de la izquierda.
Operadores Aritméticos
Un operador es
un símbolo que representa una acción determinada para una variable o valor y
así como en español la coma ( , ) indica una pausa corta y
el punto ( . ) indica una pausa un poco más larga, en aritmética
existen operadores que indican la ejecución de determinado proceso, por
ejemplo:
2 + 2 = 4
2 + 2 = 4
Operadores Aritméticos
Binarios: los operadores binarios indican operaciones
sencillas de incremento (suma o multiplicación ) y decremento
(resta, división y modulo), estos son los operadores binarios:
+: representa la suma de dos o más valores o
variables.
-: representa la resta de dos o más valores
o variables.
*: representa la multiplicación de dos o más valores
o variables.
/: representa la división de dos o más valores o
variables.
%: representa el modulo (obtención del residuo de una
división) de dos o más valores o variables.
Unarios: los operadores unarios representan
operaciones simplificadas de incremento decremento y modificación de signos,
estos son los operadores unarios:
++: Incrementa el valor de una variable en una
unidad.
--: Decrementa el valor de una variable en una unidad.
-: Cambia el signo de una variable, es
como multiplicar por -1.
Ejemplos:
3 + 3 = 6
10 - 5 = 5
5 * 5 = 25
8 / 2 = 4
8 % 2 = 0 (cero es el residuo de la división 8/2)
c=4;
c++; //c=5 (c inicia siendo igual a 4, después del
incremento [c++], c vale 5)
d=10;
d--; //d=9 se le resto 1
e = -(4) // e = -4
f = -(-6) // f = 6 (por regla de signos menos por menos
igual a mas)
En conclusión los operadores unarios, simplifican el proceso de modificación de
valores ya que al escribir c++ se hace lo mismo que c=c+1.
Operadores Relacionales
Son operadores
que se encargan de unir y comparar dos o más valores, siempre se utilizan en
comparaciones de parejas y están dadas por los símbolos:
== : igual que
!= : diferente a
> : mayor que
< : menor que
>= : mayor
igual que
<= : menor
igual que
Estos operadores se usan para comparar valores de variables por pares es decir,no se pueden comparar más de 2 valores al tiempo:
Estos operadores se usan para comparar valores de variables por pares es decir,no se pueden comparar más de 2 valores al tiempo:
a > b > c
//ERROR
(a > b) && (b > c) //BIEN
Operadores Lógicos
Son operadores de
unión, también llamados compuertas lógicas, estos operadores pueden unir dos o
más pares de valores comparados por medio de los operadores relaciones y están
dados por estos símbolos:
&& :
Operador AND (Y) quiere decir que todas las condiciones deben ser verdaderas para
que se ejecute una acción.
|| : Operador OR
(O) quiere decir que de todas las condiciones solo una debe ser verdadera y se
asume que con eso es suficiente para hacer determinada acción.
! : Operdaro NOT
(NO) quiere decir que se niega la afirmación para cambiar su valor, es decir
cambia de verdadero a falso y de falso a verdadero.
not (negación) Instrucciones
lógicas
Esta instrucción ejecuta la operación lógica NOT sobre el
operando, es decir invierte los bits. Cambia los unos por ceros y los ceros por
unos.
Instrucción
|
Efecto
|
Descripción
|
notb Operando
|
Operando ← ¬ Operando
|
niega operando de 1 byte
|
notw Operando
|
Operando ← ¬ Operando
|
niega operando de 2 bytes
|
notl Operando
|
Operando ← ¬ Operando
|
niega operando de 4 bytes
|
Operandos válidos
|
Ejemplo
|
registro
|
notl %eax
|
memoria
|
notl etiqueta
|
Instrucciones de Control
Las instrucciones de control son aquellas que nos permiten
variar o alterar la secuencia normal de ejecución de un programa. Prácticamente
la totalidad de lenguajes de programación de alto nivel soportan tres tipos de
instrucciones de control:
- Instrucciones
condicionales o alternativas.
- Instrucciones
de salto.
- Instrucciones
repetitivas.
