lunes, 28 de mayo de 2012

TUTORIAL PSEINT

El Pseudo-código


Las características de este pseudolenguaje fueron propuestas en 2001 por el responsable de la asignatura Fundamentos de Programación de la carrera de Ingeniería Informática de la FICH-UNL. Las premisas son:
  • Sintaxis sencilla
  • Manejo de las estructuras básicas de control
  • Solo 3 tipos de datos básicos: numérico, caracter /cadenas de caracteres y lógico (verdadero-falso).
  • Estructuras de datos: arreglos


    Todo algoritmo en pseudocógido tiene la siguiente estructura general:

         Proceso SinTitulo
              accion 1;
              accion 1;
                   .
                   .
                   .
              accion n;
         FinProceso
  • Comienza con la palabra clave Proceso seguida del nombre del programa, luego le sigue una secuencia de instrucciones y finaliza con la palabra FinProceso. Una secuencia de instrucciones es una lista de una o más instrucciones, cada una terminada en punto y coma.

    Las acciones incluyen operaciones de entrada y salida, asignaciones de variables, condicionales si-entonces o de selección múltiple y/o lazos mientras, repetir o para.


    Asignación


    La instrucción de asignación permite almacenar una valor en una variable.

          <variable> <- <expresión> ;

    Al ejecutarse la asignación, primero se evalúa la expresión de la derecha y luego se asigna el resultado a la variable de la izquierda. El tipo de la variable y el de la expresión deben coincidir.

    Entradas

    La instrucción Leer permite ingresar información desde el ambiente.

          Leer <variablel> , <variable2> , ... ,
    <variableN> ;


    Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los asigna a las N variables mencionadas. Pueden incluirse una o más variables, por lo tanto el comando leerá uno o más valores.

    Salidas


    La instrucción Escribir permite mostrar valores al ambiente.

          Escribir <exprl> , <expr2> , ... , <exprN> ;

    Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores obtenidos de evaluar N expresiones. Dado que puede incluir una o más expresiones, mostrará uno o más valores.

    Dimensionamiento

    La instrucción Dimension permite definir un arreglo, indicando sus dimensiones.

          Dimesion <identificador> (<maxl>,...,<maxN>);

    Esta instrucción define un arreglo con el nombre indicado en <indentificador> y N dimensiones. Los N parámetros indican la cantidad de dimensiones y el valor máximo de cada una de ellas. La cantidad de dimensiones puede ser una o más, y la máxima cantidad de elementos debe ser una expresión numérica positiva.
    Se pueden definir más de un arreglo en una misma instrucción, separándolos con una coma (,).

          Dimension <ident1> (<max11>,...,<max1N>),..., <identM> (<maxM1>,...,<maxMN>)

    Es importante notar que es necesario definir un arreglo antes de utilizarlo.

    Condicional Si-Entonces


    La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del valor de una condición lógica.

          Si <condición>
                Entonces
                     <instrucciones>
                Sino
                      <instrucciones>
          FinSi


    Al ejecutarse esta instrucción, se evalúa la condición y se ejecutan las instrucciones que correspondan: las instrucciones que le siguen al Entonces si la condición es verdadera, o las instrucciones que le siguen al Sino si la condición es falsa. La condición debe ser una expresión lógica, que al ser evaluada retorna Verdadero o Falso.
    La cláusula Entonces debe aparecer siempre, pero la cláusla Sino puede no estar. En ese caso, si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa continúa con la instrucción siguiente.

    Selección Multiple


    La secuencia de instrucciones ejecutada por una instrucción Segun depende del valor de una variable numérica.

          Segun <variable> Hacer
                <número1>: <instrucciones>
                <número2>,<número3>: <instrucciones>
                <...>
                De Otro Modo: <instrucciones>
          FinSegun


    Esta instrucción permite ejecutar opcionalmente varias acciones posibles, dependiendo del valor almacenado en una variable de tipo numérico. Al ejecutarse, se evalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho valor.
    Cada opción está formada por uno o más números separados por comas, dos puntos y una secuencia de instrucciones. Si una opción incluye varios números, la secuencia de instrucciones asociada se debe ejecutar cuando el valor de la variable es uno de esos números.
    Opcionalmente, se puede agregar una opción final, denominada De Otro Modo, cuya secuencia de instrucciones asociada se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de las opciones anteriores.

    Lazos Mientras


    La instrucción Mientras ejecuta una secuencia de instrucciones mientras una condición sea verdadera.

          Mientras <condición> Hacer
                <instrucciones>
          FinMientras


    Al ejecutarse esta instrucción, la condición es evaluada. Si la condición resulta verdadera, se ejecuta una vez la secuencia de instrucciones que forman el cuerpo del ciclo. Al finalizar la ejecución del cuerpo del ciclo se vuelve a evaluar la condición y, si es verdadera, la ejecución se repite. Estos pasos se repiten mientras la condición sea verdadera.
    Note que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca, si al evaluar por primera vez la condición resulta ser falsa.
    Si la condición siempre es verdadera, al ejecutar esta instrucción se produce un ciclo infinito. A fin de evitarlo, las instrucciones del cuerpo del ciclo deben contener alguna instrucción que modifique la o las variables involucradas en la condición, de modo que ésta sea falsificada en algún momento y así finalice la ejecución del ciclo.

    Lazos Repetir


    La instrucción Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la condición sea verdadera.

          Repetir
                <instrucciones>
          Hasta Que <condición>


    Al ejecutarse esta instrucción, la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evalúa la condición. Si la condición es falsa, el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condición. Esto se repite hasta que la condición sea verdadera.
    Note que, dado que la condición se evalúa al final, las instrucciones del cuerpo del ciclo serán ejecutadas al menos una vez.
    Además, a fin de evitar ciclos infinitos, el cuerpo del ciclo debe contener alguna instrucción que modifique la o las variables involucradas en la condición de modo que en algún momento la condición sea verdadera y se finalice la ejecución del ciclo.

    Lazos Para


    La instrucción Para ejecuta una secuencia de instrucciones un número determinado de veces.

          Para <variable> <- <inicial> Hasta <final> ( Con Paso <paso> ) Hacer
                <instrucciones>
          FinPara


    Al ingresar al bloque, la variable <variable> recibe el valor <inicial> y se ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo. Luego se incrementa la variable <variable> en <paso> unidades y se evalúa si el valor almacenado en <variable> superó al valor <final>. Si esto es falso se repite hasta que <variable> supere a <final>. Si se omite la cláusula Con Paso <paso>, la variable <variable> se incrementará en 1.

    Operadores y Funciones

    Este pseudolenguaje dispone de un conjunto básico de operadores y funciones que pueden ser utilizados para la construcción de expresiones más o menos complejas.

    Las siguientes tablas exhiben la totalidad de los operadores de este lenguaje reducido:

              
    Operador
    Significado
    Ejemplo
    Relacionales
    >
      Mayor que   3>2
    <
      Menor que   'ABC'<'abc'
    =
      Igual que   4=3
    <=
      Menor o igual que   'a'<='b'
    >=
      Mayor o igual que   4>=5
    Logicos
    & ó Y
      Conjunción (y).   (7>4) & (2=1) //falso
    | ó O
      Disyunción (o).   (1=1 | 2=1) //verdadero
    ~ ó NO
      Negación (no).   ~(2<5) //falso
    Algebraicos
    +
      Suma   total <- cant1 + cant2
    -
      Resta   stock <- disp - venta
    *
      Multiplicación   area <- base * altura
    /
      División   porc <- 100 * parte / total  
    ^
      Potenciación   sup <- 3.41 * radio ^ 2
    % ó MOD
      Módulo (resto de la división entera)    resto <- num MOD div

    La jerarquía de los operadores matemáticos es igual a la del álgebra, aunque puede alterarse mediante el uso de paréntesis.

    A continuación se listan las funciones integradas disponibles:

              
    Función Significado
    RC(X) Raíz Cuadrada de X
    ABS(X) Valor Absoluto de X
    LN(X) Logaritmo Natural de X
    EXP(X) Función Exponencial de X
    SEN(X) Seno de X
    COS(X) Coseno de X
    ATAN(X) Arcotangente de X
    TRUNC(X) Parte entera de X
    REDON(X) Entero más cercano a X
    AZAR(X) Entero aleatorio entre 0 y X-1


    Algunas Observaciones

  • Se pueden introducir comentarios luego de una instrucción, o en líneas separadas, mediante el uso de la doble barra ( // ). Todo lo que precede a //, hasta el fin de la línea, no será tomado en cuenta al interpretar el algoritmo.
  • Notese que no puede haber instrucciones fuera del programa, aunque si comentarios.
  • Las estructuras no secuenciales pueden anidarse. Es decir, pueden contener otras adentro, pero la estructura contenida debe comenzar y finalizar dentro de la contenedora.
  • Los identificadores, o nombres de variables, deben constar sólo de letras y números, comenzando siempre con una letra, y no pueden ser palabras reservadas (como para, mientras, y, no, etc...)
  • Las constantes de tipo carácter se escriben entre comillas ( " ).
  • En las constantes numéricas, el punto ( . ) es el separador decimal.
  • Las constantes lógicas son Verdadero y Falso.
    • ALGORITMOS

      ¿QUE ES UN ALGORITMO?
      viene a ser una formula para resolver un problemaen un conjunto de acciones o secuencias de operacionesque ejecutadas en un determinado orden resuelven el problema.existen n algorimos por ello hay que escorgerel mas efectivo.
      una de las caracteristicas del algorimo es que tienes que ser preciso , estar bien definido y ser finito.
      estas estan conformadas por datos .

      un algoritmo tiene :  Entrada-proceso y salida
                                     E------P--------S


      LOS TIPOS PUEDEN SER:
      1.-NUMERICOS:
                          enteros:   no tiene parte decimal.
                           reales:  llevan signo y parte decimal.

      2.-LOGICOS O BOOLEANOS:
                                  pueden tomas como valordos valores verdarero o falso.

      3.-CARACTER:
                  tipo de cadena o String: estos caracteres van a estar entre  "" (comillas).

      CONSTANTES Y VARIABLES :
                  constantes: tiene un valor fijo y no puede ser modificado
                  variables : la variable puede cambiar durante la ejecucion del algoritmo, pero nuca varia su nombre
                                 y su tipo



      NOTA: antes de programas  tenemor que ver cual es la ENTRADA Y  SALIDA del problema,osea que es lo que nesecitas para ingresar a programar y que es lo que te pide o que resultado quieres obtenery de ahi empezamo con el proceso (tipo de operaciones a usar).
      PSEUDOCODIGO:
      es un lenguaje de especificcion de algoritmos, pero muy parecido a cualkier  lenguaje de programacion por lo que su traduccion es muy sencillo.
      tambien va utilizar una serie de palabras clave o palabras especiales que va indicando lo qie significa el algoritmo. y esta parte es la mas importante ya que con ello se va a resolver la mayoria de problemas

      1.-inicio y fin :por donde empieza y acaba el algoritmo.
         2.-        SI <cond>
                      Entonces<acc1>              if    then   else
                      sino<acc2>
      3.-Mientras <cond>   hacer            while    do
      4.- Repetir / hasta                           repeat    until
      5.- Desde/ Hasta                            for to
      6.-segun sea                                  case   switch


      BUENO AQUI LES PONGO UN EJEMPLO CLASICO DE ALGORITMO EN PSEUDOCODIGO

      Ejercicio1:
      Un vendedor recibe un sueldo basico más un 10% de comision por ventas, el vendedor desea saber
      cuanto dinero obtendra por las tres ventas que realiza en el mes. Determinar el pago total que
      recibirá a fin mes el vendedor.

      (aqui comenzamos a analisar cual es la entra y la salida, como ven las abreviaturas son las variables que se van a declarar, para mejor analisis lo deberian hacer en el NOTEPAD Y luego recien llevarlo al PSEINT)
      VEAMOS

      *Analisis de datos
      E: sb(sueldo base),v1(venta1),v2(venta2),v3(venta3)
      S: pt(pago total)

      *Algoritmo
      1.-inicio
      2.-sb=0.0,c=0.0,pt=0.0,v1=0,v2=0,v3=0
      3.-leer sb,v1,v2,v3
      4.-c=(v1+v2+v3) * 0.10
         pt=sb+c
      5.-escribir pt
      6.-fin

      *Prueba de escritorio(el la prueba que vas a obtener si esta bien hecho tu programa)
      sb=5000
      v1=200
      v2=300
      v3=250
      pt=5075

      Y BUENO ACA LES DEJO YA LLEVADO AL PSEINT  =)



      sábado, 26 de mayo de 2012

      calculadora con PSEINT

      bueno aqui le dejo los codigos de como pueden programar una claculadora en PSEINT espero que les haya sido de utilidad .


      BUENO Y ASI QUEDARIA UNA VER EJECUTADO CONN EL BOTON VERDE

      aprender programacion

      La programación es el proceso de diseñar, codificar, depurar y mantener el codigo 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.




    • Programación estructurada

    •  La programación estructurada es una técnica para escribir programas (programacion de computadora). Para ello se utilizan únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).



    • Programación modular

    • La programación modular es un paradigma de programacion que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.
      Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y venceras ó análisis descendente (Top-Down).



    • Programación orientada a objetos (POO)

    • La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programacion que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.