miércoles, 24 de septiembre de 2014

ESTRUCTURA SELECTIVA

La especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una descripción más complicada que una lista sencilla de instrucciones. Este es el caso cuando existen un número de posibles alternativas resultantes de la evaluación de una determinada condición.

ESTRUCTURAS SELECTIVAS SIMPLES.

Se identifican porque están compuestos únicamente de una condición. La estructura si - entonces evalúa la condición y en tal caso:

Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias).

Si la condición es falsa, entonces no se hace nada.


ESTRUCTURAS SELECTIVAS DOBLES

Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se utilizan cuando se tienen dos opciones de acción, por la naturaleza de estas se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.

ESTRUCTURAS SELECTIVAS ANIDADAS



En la solución de problemas encontramos numerosos casos en los que luego de tomar una decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión. Dicho proceso puede repetirse numerosas veces. En aquellos problemas en donde un bloque condicional incluye otro bloque condicional se dice que un bloque está anidado dentro del otro.



ESTRUCTURAS SELECTIVAS MÚLTIPLES 


Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema se podría resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el número de alternativas es grande puede plantear serios problemas de escritura y de legibilidad.


Referencias:

ESTRUCTURA SECUENCIAL

Es aquella en la que una instrucción sigue a otra en secuencia, las tareas se suceden de tal forma que la sallida de una acción es la entrada de la siguiente, y así sucesivamente hasta el final del proceso.
Gráficamente:

ENTIDADES USADAS EN LA ESTRUCTURA SECUENCIAL
  • Asignación: Consiste en el paso de valores o de resultados a un lugar de la memoria. Este lugar está identificado con un nombre que es el que va a recibir el valor. Las asignaciones pueden ser:
    • Simple: Transfiere una variable/constante.
      • Ejemplo: A=9
    • Contador: Los valores que acumulan son fijos, cuentan.
      • Ejemplo: C=C±Cte
    • Acumulador: Cuentan valores variables.
      • Ejemplo: A=A±Var
    • Variable de trabajo: Recibe el resultado de una operación completa.
      • Ejemplo: P=(A+B+C+D)/4
  • Entrada: También corresponde a los enunciados de lectura. Consiste en recibir desde un dispositivo de entrada cualquier valor. Cuando se habla de pseudocódigo, un enunciado de entrada se representa como "Leer a, b", y en diagrama de flujo se representa con los siguientes símbolos:
 
  • Salida: Corresponde a un enunciado de salida o de impresión. Consiste en mandar por un dispositivo de salida un resultado o un mensaje. En pseudocódigo, corresponde a: "escribir c" o "imprimir c", pero en el diagrama de flujo, los símbolo son:


Cuando el resultado se debe imprimir en la pantalla.






Cuando el resultado se debe imprimir a través de papel.




Se caracteriza porque una acción se ejecuta detrás de otra. El flujo del programa coincide con el orden físico en el que se han ido poniendo las instrucciones. Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicialización de variables, operaciones de asignación, cálculo, sumarización, etc. Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o programa:

  • Definición de variables (Declaración)
  • Inicialización de variables.
  • Lectura de datos
  • Cálculo
  • Salida

Referencias:


CONCEPTOS BÁSICOS DE PROGRAMACIÓN



Programar un computador consiste en escribir las instrucciones necesarias para que éste pueda desarrollar la solución a un problema, y a dicho conjunto de instrucciones específicas se les denomina programa.



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..

El programa debe estar escrito o codificado en un lenguaje especializado denominado lenguaje de programación, como lo son Pascal, C, Fortram, phelphi, Visual basic, entre otros.

LOS ALGORITMOS

Un algoritmo es una secuencia ordenada de instrucciones, pasos o procesos 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 y este 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.

Un algoritmo debe ser:


La definición del algoritmo debe describir 3 partes:


ENTIDADES BÁSICAS PARA EL DESARROLLO DE LOS ALGORITMOS


TIPOS DE DATOS:

Es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar.

Existe una estructura para identificar diferentes tipos de datos:


CONSTANTES Y VARIABLES

  • 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.
  • 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.
IDENTIFICADORES:

Representan los datos de un programa, bien sean constantes o variables. Es una secuencia de caracteres que sirve para identificar una posición en la memoria del computador y poder acceder a su contenido. Debe ser nemotécnico, lo que significa que la lectura del identificador debe estar asociada al dato que este contiene. 

Para formare un identificador se deben seguir las siguientes reglas:


Ejemplos:
  • N1
  • NOMB1
  • ESTATURA
  • MATERIA1
  • Letra
  • T.I.
TIPOS DE VARIABLES
Las variables se clasifican según su uso y su contenido de la siguiente manera:

  • Variable de Trabajo: Es aquella que recibe el resultado de una operación completa.
    • Ejemplo: A=B*H/2
  • Contadores: Es una variable que lleva el control o el conteo de las veces que se realiza una operación o se cumple una condición. Este conteo es acumulativo en valores constantes.
    • Ejemplo: C=C±1
  • Acumuladores: Es una variable que lleva una suma acumulativa de unas valores que han sido leídos o calculadas progresivamente. En un acumulador, los aumentos o disminuciones son variables.
    • Ejemplo: Ac=Ac±Var
OPERADORES


Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores. 
Los tipos de operadores son:
  • Operadores Aritméticos:
Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes). 
Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.


Los operadores Aritméticos son:
      • + Suma 
      • - Resta 
      • * Multiplicación 
      • / División 
      • mod Modulo (residuo de la división entera)
    • Prioridad de los operadores aritméticos
Se evalúan todas las expresiones que contienen paréntesis. Las expresiones con paréntesis anidados se evalúan desde dentro hacia afuera, es decir, el más interno se resuelve primero.
Dentro de una misma expresión, el orden de evaluación de los operadores es el siguiente: potencia, multiplicación y división, y por último suma y resta.
Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a derecha.
  • Operadores Relacionales 
Se utilizan para establecer una relación entre dos valores. Luego compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso). 
Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas). Estos tienen el mismo nivel de prioridad en su evaluación. 
Los operadores relaciónales tiene menor prioridad que los aritméticos.



Tipos de operadores Relacionales:
    • > Mayor que
    • < Menor que
    • > = Mayor o igual que
    • < = Menor o igual que
    • < > Diferente
    • = Igual
  • Operadores Lógicos

Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos valores pueden ser resultado de una expresión relacional. 

Tipos de operadores Lógicos :

    • And Y 
    • Or O 
    • Not Negación 

OPERANDOS

En los lenguajes de programación de computadora,  la definición de operandos es casi la misma que en matemáticas:
"Es una de las entradas, argumentos o variables de un operador"
Son los valores variables y/o constantes y/o expresiones que se asocian con operadores para encontrar un valor resultado.

EXPRESIONES

Consisten en la combinación de identificadores, símbolos de operación, paréntesis y funciones. Una expresión está formada por operadores y operandos. Según los tipos de datos que manipulan se clasifican en:
  • Aritméticas:    a+b
  • Lógicas:    a AND b
  • Relacionales:   a>b
Cada expresión toma un valor que se determina a partir de el valor de las variables y las constantes indicadas y la ejecución de las operaciones indicadas.

TÉCNICAS PARA FORMULACIÓN DE ALGORITMOS

Existen dos herramientas utilizadas para diseñar algoritmos: herramientas gráficas y herramientas descriptivas.

  • Gráficas: Diagrama de flujo (DFD)
  • Descriptivas: Pseudocódigo (PSeInt)

DIAGRAMA DE FLUJO:
Un diagrama de flujo es la representación gráfica de un algoritmo. Se puede decir que es la representación detallada en forma gráfica de como deben realizarse pasos en el computador para producir los resultados.
Esta representación se da cuando varios símbolos se relacionan entre sí mediante líneas que indican el orden en que deben realizarse los procesos.
Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización ANSI.

ESTRUCTURA DE PROGRAMACIÓN

Las estructuras algoritmicas o de programación son un grupo de formas de trabajo que mediante la manipulación de variables realiza procesos específicos que llevan a la solución de problemas.
Las estructuras de control tienen una finalidad bastante definida: su objetivo es ir señalando el orden en que tienen que sucederse los pasos de un algoritmo.
Dichas estructuras se dividen en:



Referencias: