lunes, 27 de abril de 2015

EJEMPLOS DE PSEUDOCODIGO

Ejemplos de Pseudocódigo



Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo..
Programa; área
Entorno: BASE, ALTURA, AREA son número enteros
Algoritmo:
            Escribir “Introduzca la base y la altura”
            Leer BASE, ALTURA
            Calcular AREA = BASE * ALTURA
            Escribir “El área del rectángulo es “AREA
Fin programa
Ejemplo: Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la suma y el producto de las notas.
Programa: Suma Producto
Entorno: NOTA1, NOTA2, SUMA, PRODUCTO son números enteros
Algoritmo:
Escribir “Introduzca las notas”
Leer NOTA1, NOTA2
Calcular SUMA = NOTA1 + NOTA2
Calcular PRODUCTO = NOTA1 * NOTA2
Escribir “La suma de las dos notas es:” SUMA
Escribir “El producto de las dos notas es :”PRODUCTO
Fin programa

Ejemplo: Realizar el pseudocódigo de un programa que permita saber si un número es mayor, menor o igual a cero.
    Programa: Compara Números
       Entorno: NUMERO es un número entero
Algoritmo:
Escribir “Introduzca un número “
Leer NÚMERO
SI NUMERO>0  ENTONCES
          Escribir “El número introducido es positivo”
SI NO
          SI NUMERO<0 ENTONCES
                 Escribir “El número introducido es negativo”
          SI NO
                 Escribir “El número es cero”
          FINSI
FINSI
Fin programa


Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva tres puntos en la coordenada x y escriba el resultado en algún dispositivo de salida:

ALGORITMO lee_tres_vertices
ENTRADA: las coordenadas (x, y) de tres puntos
SALIDA: las coordenadas (x, y) de los tres puntos movidos 3 puntos hacia la derecha.
VARIABLES: i: entera
x,y: real
INICIO
PARA i=1 HASTA 3 CON INCREMENTO +1
ESCRIBE "Abscisa del punto número ", i
LEER x
ESCRIBE "Ordenada del punto número ", i
LEER Y
ESCRIBE "El punto es (" x+3","y")"
FIN_PARA
FIN
 El programa equivalente a este algoritmo se muestra a continuación. Como podemos apreciar en un programa en Pascal es importantísimo no olvidar detalles de sintaxis. Por ejemplo cada sentencia termina en punto y coma. De cualquier forma es inmediato apreciar los simples cambios existentes.

Program lee_tres_vertices;
Var x,y: real;
I: integre;
begin
for i:=1 to 3 do
begin
write ('Abscisa del punto número ',i); readln(x);
write ('Ordenada del punto número ',i); readln(y);
writeln (' El punto es (',x+3,',',y,')');
end;
end;

Problema: calcular y mostrar la suma de los diez primeros números entre 1 y 1000 que sean divisibles por uno dado.

Programa suma divisibles
Variable natural: divisor, suma, contador, número

Inicio programa
Divisor   leer ‘Introduce el divisor: ’
Suma   0
Contador   0
Para número desde 1 hasta 1000 hacer
Si divisor divide a número entonces
Suma   suma + número
Contador   contador + 1
      Fin si
    Si contador = 10 entonces
Interrumpir
                Fin si
Fin para

Escribir ‘La suma es’, suma

Fin programa

Ejemplos de Pseudocódigo

Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo..
Programa; área
Entorno: BASE, ALTURA, AREA son número enteros
Algoritmo:
            escribir “Introduzca la base y la altura”
            leer BASE, ALTURA
            calcular AREA = BASE * ALTURA
            escribir “El área del rectángulo es “AREA
Finprograma
Ejemplo: Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la suma y el producto de las notas.
Programa: SumaProducto
Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros
Algoritmo:
escribir “Introduzca las notas”
leer NOTA1,NOTA2
calcular SUMA = NOTA1 + NOTA2
calcular PRODUCTO = NOTA1 * NOTA2
escribir “La suma de las dos notas es:” SUMA
escribir “El producto de las dos notas es :”PRODUCTO
Finprograma

Ejemplo: Realizar el pseudocódigo de un programa que permita saber si un número es mayor, menor o igual a cero.
    Programa: ComparaNúmeros
       Entorno: NUMERO es un número entero



Algoritmo:
Escribir “Introduzca un número “
leer NUMERO
SI NUMERO>0  ENTONCES
          escribir “El número introducido es positivo”
SI NO
          SI NUMERO<0 ENTONCES
                 escribir “El número introducido es negativo”
          SI NO
                 escribir “El número es cero”
          FINSI
FINSI
Finprograma

 
Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva tres puntos en la coordenada x y escriba el resultado en algún dispositivo de salida:

ALGORITMO lee_tres_vertices
ENTRADA: las coordenadas (x,y) de tres puntos
SALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia la derecha.
VARIABLES: i:entera
x,y: real
INICIO
PARA i=1 HASTA 3 CON INCREMENTO +1
ESCRIBE "Abscisa del punto número ", i
LEER x
ESCRIBE "Ordenada del punto número ", i
LEER Y
ESCRIBE "El punto es (" x+3","y")"
FIN_PARA
FIN
 El programa equivalente a este algoritmo se muestra a continuación. Como podemos apreciar en un programa en Pascal es importantísimo no olvidar detalles de sintaxis. Por ejemplo cada sentencia termina en punto y coma. De cualquier forma es inmediato apreciar los simples cambios existentes.

program lee_tres_vertices;
var x,y:real;
i:integer;
begin
for i:=1 to 3 do
begin
write ('Abscisa del punto número ',i); readln(x);
write ('Ordenada del punto número ',i); readln(y);
writeln (' El punto es (',x+3,',',y,')');
end;
end;

Problema: calcular y mostrar la suma de los diez primeros números entre 1 y 1000 que sean divisibles por uno dado.

programa suma_divisibles
variables natural : divisor, suma, contador, número

inicio programa
divisor   leer ‘Introduce el divisor: ’
suma   0
contador   0
para número desde 1 hasta 1000 hacer
si divisor divide a número entonces
suma   suma + número
contador   contador + 1
                fin si
                si contador = 10 entonces
interrumpir
                fin si
fin para

escribir ‘La suma es’, suma

fin programa



PSEUDOCODIGO

Que es  pseudocódigo


En ciencias de la computación, y análisis numérico, el pseudocódigo (o falso lenguaje) es una descripción de alto nivel compacta e informal1 del principio operativo de un programa u otro algoritmo.
Utiliza las convenciones estructurales de un lenguaje de programación real, 2 pero está diseñado para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código del lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y publicaciones científicas que se documentan varios algoritmos, y también en la planificación del desarrollo de programas informáticos, para esbozar la estructura del programa antes de realizar la efectiva codificación.

No existe una sintaxis estándar para el pseudocódigo, aunque los ocho IDE's que manejan pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el pseudocódigo no debe confundirse con los programas esqueleto que incluyen código ficticio, que pueden ser compilados sin errores. Los diagramas de flujo y UML pueden ser considerados como una alternativa gráfica al pseudocódigo, aunque sean más amplios en papel.


viernes, 24 de abril de 2015

LENGUAJE DE BAJO NIVEL

LENGUAJE DE BAJO NIVEL


Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman de tercera generación o de nivel alto, en contraposición a los de bajo nivel o de nivel próximo a la máquina.


Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a ese nivel es muy difícil. Dado que este lenguaje viene dado por las especificaciones técnicas del hardware, no permite una abstracción fuera de lo estipulado para el microprocesador de un ordenador. Consecuentemente, es fácilmente trasladado a lenguaje de máquina.



LENGUAJE DE ALTO NIVEL

Lenguaje de alto nivel



Un lenguaje de programación de alto nivel se caracteriza por expresa el algoritmo de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas.

En los primeros lenguajes, la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales o lenguajes de bajo nivel. Otra limitación de estos es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un problema de procesamiento de datos de una manera más fácil y rápida.


LENGUAJE DE MAQUINA

Lenguaje de maquina



El lenguaje de máquina o código máquina es el sistema de códigos directamente interpretable por un circuito micro programable, como el microprocesador de una computadora o el micro controlador de un autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones al ser tomadas por la máquina. Un programa consiste en una cadena de estas instrucciones más un conjunto de datos sobre el cual se trabaja. Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de máquina es específico de la arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre arquitecturas distintas.
Los circuitos micro programables son sistemas digitales, lo que significa que trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con los números 0 y 1, por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación.

 

LENGUAJE DE PROGRAMACION

LENGUAJE DE PROGRAMACIÓN


Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.

Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten estructurar el contenido de los documentos).


PROGRAMACION

QUE 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 estrictamente este último abarca mucho más que sólo la programación.


TIPO DE DIAGRAMAS DE FLUJO

Tipos de diagramas de flujo

Diagramas de flujo de documento
Los diagramas de flujo de documentos muestran el flujo de documentos a través de una compañía u organización y entre departamentos internos. Varias columnas están separadas por líneas verticales en un diagrama de flujo de documentos. Las columnas representan una unidad organizacional, departamento, sección o empleado específico. El diagrama de flujo ilustra cómo el documento debería moverse de un departamento a otro por el símbolo del documento que se conecta a cada departamento.


Diagrama de flujo detallado
Un diagrama de flujo detallado suministra una imagen muy comprensiva del proceso desde principio a fin al ilustrar cada paso y las actividades adicionales que ocurren a lo largo del camino a través del proceso. A diferencia de otros diagramas de flujo, los detallados demuestran en qué punto en el proceso una pausa debería ocurrir si hay un período de espera, puntos de decisión, de trabajo de nuevo o dónde debería recibirse una retroalimentación en el proceso. Este tipo de diagrama de flujo es utilizado para resolver problemas y cuando las compañías quieren implementar mejores estándares de eficiencia. Los diagramas de flujo detallados pueden ser utilizados en una puesta organizacional como un hospital o la compañía Fortune 500.

Diagramas de flujo de información
Los diagramas de flujo de información muestran cómo el flujo de información es controlado a través de un sistema o compañía. Estos diagramas son creados en órdenes lógicos con gráficos o imágenes. Las ilustraciones en estos diagramas utilizan cuatro símbolos comunes: rectángulos con los extremos abiertos muestran los puntos donde se reúne la información; los óvalos representan los procesos a tomar lugar; los rectángulos con extremos abiertos con ganchos o cuernos indican dónde el proceso tiene una interfaz con otros departamentos o aplicaciones; y los rectángulos indican el procesado de los reportes.
Diagrama de flujo de alto nivel
Un diagrama de flujo de alto nivel, también referido como diagrama de primer nivel o de arriba hacia abajo, muestra los pasos mayores que ocurren en un proceso. El diagrama muestra cada paso y el resultado del mismo, y el producto o servicio que sale de realizar el paso particular en el proceso, como también los pasos adicionales que necesitan ser llevados a cabo por cada proceso realizado. Una imagen básica del proceso es suministrada, como también todos los cambios que toman lugar en el camino. Los diagramas de flujo de alto nivel identifican a las personas involucradas en el proceso y en qué nivel están involucradas, como también las tareas específicas que son desarrolladas. Se utilizan cuatro o cinco cajas para identificar los pasos mayores del proceso; cuantas menos cajas, más eficiente será el diagrama de flujos.



DIAGRAMAS DE FLUJO

Qué es un Diagrama de Flujo



Un diagrama de flujo es una representación gráfica de un proceso. Cada paso del proceso es representado por un símbolo diferente que contiene una breve descripción de la etapa de proceso. Los símbolos gráficos del flujo del proceso están unidos entre sí con flechas que indican la dirección de flujo del proceso.

 El diagrama de flujo ofrece una descripción visual de las actividades implicadas en un proceso mostrando la relación secuencial ente ellas, facilitando la rápida comprensión de cada actividad y su relación con las demás, el flujo de la información y los materiales, las ramas en el proceso, la existencia de bucles repetitivos, el número de pasos del proceso, las operaciones de interdepartamentales… Facilita también la selección de indicadores de proceso.




LENGUAJE DE ALGORITMO

LENGUAJE DE ALGORITMO


Hasta este momento todo lo que hemos visto es prácticamente teoría, llegó la hora de plasmar nuestros algoritmos de alguna forma que sean claros para cualquier persona que necesite leerlos. Muchas veces los informáticos se saltan este paso y llegan directamente a la implantación en algún lenguaje de programación; para ello se necesita tener mucha practica y memoria fotográfica, ya que muchas veces se omiten pasos que a la hora de implementarlos en algún lenguaje producen que el programa no llegue a la solución que habíamos planteado como óptima.
De esta manera se han creado lenguajes que puedan representar nuestros algoritmos y que de esa manera se construya una solución correcta sin omitir algunos pasos. Imagínense que si se desea crear un algoritmo para que un robot sol de una pieza en una ensamblador de automóviles y la persona encargada de implementar el algoritmo olvida, por muy obvio que sea, comprobar si las piezas están en su lugar, obviamente podría terminar en tragedia.
Así que la gente que se encarga de los estándares en cuanto a lo que se refiere a las tecnologías de la información vio la necesidad de representar algoritmos sin tener que referirse a un lenguaje de programación en específico.





CARACTERISTICAS DE ALGORITMO

    Definición y características de algoritmos
 
Algoritmo: Conjunto de operaciones que se utilizan para resolver un problema específico. En este conjunto de instrucciones se indica la secuencia de operaciones que se deben realizar para, a partir de los datos de entrada, obtener el resultado buscado. El concepto de algoritmo es anterior a los ordenadores, y ampliamente utilizado en el mundo de la ciencia para la resolución metódica de problemas. Sin embargo, con la aparición de los ordenadores se comprobó que era una herramienta ideal, ya que cualquier algoritmo puede transformarse en un programa informático.

Características del algoritmo: Tiene que ser finito (con un final), preciso (detallar el orden de las operaciones a realizar) y unívoco (al aplicar el algoritmo a los mismos datos de entrada, siempre se obtendrá el mismo resultado a la salida).

Un Algoritmo es un conjunto ordenado y finito de pasos o instrucciones que conducen a la solución de un problema. La naturaleza de los problemas varía con el ámbito o con el contexto donde están planteados; así, existen problemas matemáticos, químicos, filosóficos, etc. Según esto la naturaleza de los algoritmos también es variada y no todos ellos pueden ser ejecutados por la computadora. En este curso consideramos aquellos algoritmos que expresan soluciones usando reglas cuantitativas cuyas instrucciones pueden ser introducidas en la computadora, a este tipo de algoritmos se denominan Algoritmos Computacionales.

En la resolución de un problema con la computadora la parte pensante esta en el algoritmo. Así pues la eficacia de un programador no está en conocer la herramienta de programación, cosa necesaria, sino en saber resolver problemas con la computadora para lo cual se requiere conocer un concepto conocido como metodología de la programación cuyo eje central es el algoritmo.

Una vez que la solución de un problema ha sido expresada mediante un algoritmo el paso siguiente es convertirlo a programa para lo cual se elige un lenguaje de programación. De modo que un programa resulta ser la implementación de un algoritmo en un determinado lenguaje de programación. Esto significa, por otro lado, que un algoritmo es independiente del lenguaje de programación.

PROBLEMA -> ALGORITMO -> PROGRAMA

El pseudocódigo es una herramienta algorítmica que permite escribir pseudoprogramas (una imitación de un programa real) utilizando un lenguaje de pseudoprogramación que es una imitación de los lenguajes de programación de alto nivel. Así, un pseudocódigo es una combinación de símbolos (+, -, *, /, %, >, >=, <, <=!=, ==, y, o, no), términos (Leer, Imprimir, Abrir, Cerrar, Hacer...Mientras, Mientras...Hacer, Para...Mientras, etc.) y otras características comúnmente utilizadas en uno o más lenguajes de alto nivel.

No existen reglas que determinen que es o no es un pseudocódigo, sino que varía de un programador a otro. El objetivo del pseudocódigo es permitir al programador centrarse en los aspectos lógicos de la solución evitando las reglas de sintaxis de un lenguaje de programación. Posteriormente el pseudocódigo debe ser traducido a programa usando un lenguaje de programación de alto nivel como Java, C++, C, etc.

Ejemplo 2.1:- Diseñe un algoritmo para preparar una limonada.

INICIO
Llenar una jarra con un litro de agua
Echar el jugo de tres limones
Echar cuatro cucharadas de azúcar
Remover el agua hasta disolver completamente el azúcar
FIN

Ejemplo 2.2:- Diseñe un algoritmo que permita hallar la suma y el promedio de tres números.

INICIO
LEER numero1, numero2, numero3
suma = numero1 + numero2 + numero3
promedio = suma / 3
IMPRIMIR suma, promedio
FIN

Notas:-

* El término LEER significa obtener un dato de algún dispositivo de entrada, como el teclado, y almacenarlo en una variable.
Una variable es una localización en la memoria que tiene un nombre y cuyo contenido puede cambiar a lo largo de la ejecución de un programa. Así numero1, numero2 y numero3 son variables.
* El término IMPRIMIR significa mostrar el valor de una variable en algún dispositivo de salida, como la pantalla.


ALGORITMO

ALGORITMO


En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.1

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones.