2010-03-22 20 views
5

El siguiente código es un ejemplo de lo que creo que calificaría como pseudocódigo, ya que no se ejecuta en ningún idioma, pero la lógica es correcta.Pseudocódigo: ¿una definición clara?

string checkRubric(gpa, major) 
    bool brake = false 
    num lastRange 
    num rangeCounter 
    string assignment = "unassigned" 
    array bus['business']= array('person a'=>array(0, 2.9), 'person b'=>array(3, 4)) 
    array cis['computer science']= array('person c'=>array(0, 2.9), 'person d'=>array(3, 4)) 
    array lib['english']= array('person e'=>array(0, 4)) 
    array rubric = array(bus, cis, lib) 

foreach (rubric as fieldAr) 
    foreach (fieldAr as field => advisorAr) 
     if (major == field) 
      foreach (advisorAr as advisor => gpaRangeAr) 
        rangeCounter = 0 
       foreach (gpaRangeAr as gpaValue) 
        if (rangeCounter < 1) 
         lastRange = gpaValue 
        else if (gpa >= lastRange && gpa <= gpaValue) 
         assignment = advisor 
         brake = true 
         break 
        endif 
        rangeCounter++ 
       endforeach 
       if (brake == true) 
        break 
       endif 
      endforeach 
      if (brake == true) 
       break 
      endif 
     endif 
    endforeach 
    if (brake == true) 
     break 
    endif 
endforeach 
return assignment 

En las últimas semanas he intentado crear una definición clara de qué es realmente el seudocódigo. ¿Es relativo al programador o hay una sintaxis clara real? Digo pseudocódigo es cualquier código que no se ejecuta, ¿y tú? Gracias (enlaces a este tema de bienvenida)

Respuesta

6

No hay una definición fija de pseudocódigo. Es cualquier anotación que espera que su público entienda para expresar su opinión. La idea importante es que está destinada a los humanos para leer, no para computadoras, por lo que no tiene que ser precisa. Puede incluir los detalles que son importantes para su exposición y omitir los que no lo son.

+0

Estoy de acuerdo contigo 100%. El pseudocódigo, en mi opinión, depende del contexto/audiencia que se proporciona y no necesariamente tiene que ser totalmente independiente del idioma. Es por eso que no puedo sacudir la creencia de que el pseudocódigo puede acercarse al límite de no ser compilable. Creo que se puede discutir más sobre esta cuestión. –

3

Desvergonzadamente arrancados de Wikipedia:

Pseudocódigo es una descripción compacta e informal de alto nivel de un algoritmo de programación informática que utiliza las convenciones estructurales de un lenguaje de programación, sino que se pretende para lectura humana en lugar de lectura de máquina. El pseudocódigo generalmente omite detalles que no son esenciales para la comprensión humana del algoritmo, como las declaraciones de variables, el código específico del sistema y las subrutinas.

Hay un montón de código que no se ejecuta. Eso no quiere decir que sea pseudocódigo. Su "psuedocode" tiene muchas cosas adicionales que los no programadores no entenderán. En lugar de ser un pseudocódigo, su lenguaje "psuedocode" está muy, muy cerca de un lenguaje real.

+0

Esta parece ser la definición más clara. –

0

Mis dos centavos en esto:

digo pseudocódigo es cualquier código que no no ejecutar, ¿y tú? Gracias (enlaces a este tema de bienvenida)

Eso no es lo que pienso cuando pienso en su definición. Un pseudocódigo son los pasos que su programa tomará para llevar a cabo una tarea con más detalle que la descripción del algoritmo.

Una cosa en particular que me parece extremadamente importante acerca de cómo escribir un pseudocódigo es que, debe ser entendido por todos para que cada individuo lo "transmita" al idioma deseado. En otras palabras, tiene que ser independiente del idioma.

Así como una crítica constructiva, no consideraría su ejemplo como pseudocódigo por varias razones, pero, especialmente porque está utilizando sintaxis y convenciones que se asemejan a un lenguaje de programación particular. Digo que los pseudocódigos deben ser independientes del lenguaje de programación para ser portados a varios lenguajes de programación reales por diferentes personas.

EDIT: Probablemente una regla más que agregaría a mi definición es que tiene que parecerse a un lenguaje humano que a un lenguaje de programación. Como en, es igual a en lugar de ==, asigne en lugar de =. La razón detrás de esto es que, por ejemplo, los operadores de asignación e igualdad son diferentes en diferentes idiomas.

+0

@Anzurio, yo diría que "==" es ampliamente usado lo suficiente como para ser aceptable en un pseudo-código. Sin embargo, su uso de "como" así como su uso de expresiones reales para sus condiciones en lugar de las explicaciones en inglés de lo que está siendo probado es lo que hace que no sea pseudocódigo. –

+0

@Michael, tienes razón, pero esa fue la primera "ejemplificación" que me vino a la mente cuando intento exponer que prefiero usar palabras o simbología independiente del lenguaje. Los lados, trabajando con ambos, VB.NET y C#, aparecen en mi mente con bastante facilidad. – Anzurio

1

El seudocódigo debería, en teoría, ser independiente de la implementación. Presenta pasos lógicos en un lenguaje simple de qué hacer. Está destinado a la interpretación humana, no a la ejecución de la máquina.

El ejemplo de OP es un poco más cercano al código real que el pseudocódigo. Por ejemplo, ++ no se encuentra en todos los idiomas. También podría tener un significado muy diferente en otros.

1

Bueno, si no compilo/enlace mi código C++, no se ejecutará, por lo que no creo que "Código que no se ejecuta" es una definición aceptable.

Del mismo modo, los lenguajes de scripting no se ejecutan, a menudo se interpretan.

Mi definición de pseudo código sería:

"[Conciso] El código que es la sintaxis agnóstico, escrita para transmitir una función, comportamiento, o algoritmo""

+0

Interesante. Parece que eso sería solo un ensayo para mí, supongo que nada malo en escribir una prueba. –

+0

Agregó "conciso" para usted :) – Alan

1

Pseudo-código es cualquier compacta, . explicación legible por humanos de un algoritmo o programa Debido a que su programa no se puede leer a mí, yo diría que no es bastante pseudo-código siguiente es un ejemplo de seudo-código:.

 
def sum(x): 
    result = 0 
    for each entry in x: 
     add current entry to result 
    report result 

o, en una estilo ligeramente diferente:

Puede usar elementos de una sintaxis particular (y, de hecho, mi pseudocódigo tiende a parecerse mucho a Python), pero debe ser comprensible para un público amplio y no debe estar obstruido por la sintaxis . Por ejemplo, uso "+ =", pero esto se debe a que es muy compacto y conveniente, no porque sea necesario. Si encontraste "endforeach" útil y conveniente en tu exposición, hubiera estado bien; sin embargo, yo diría que tal cosa no pertenece a un pseudo-código ya que parece más limitado que útil o explicativo.

+0

Esa es la cosa, no me resulta conveniente escribir "endforeach", pero sabía que algunos lo hacen. Incluí un ejemplo mixto, "foreach" no está en todos los idiomas, pero "++" casi siempre lo es. Usé "final" en lugar de llaves. Casi nunca escribo un seudocódigo que otros usarían excepto yo mismo (generalmente tiene una vida útil de 24 horas antes de que se transmita al código), por lo que no me estimo que sea independiente del lenguaje. Mi documentación interna siempre está en lenguaje natural. –

0

Pseudocódigo es lo que escribirías en la pizarra si quieres transmitir tus ideas de forma rápida y clara. En la práctica, para mí, es muy parecido a un lenguaje de script sin tipo, pero con requisitos sintácticos mucho más flexibles. Para mí se parece mucho a C porque, francamente, la mayoría de los programadores asimilan un lenguaje que es una variante de la sintaxis C y, por lo tanto, la intuición es más fácil para muchas personas (solía parecerse a Pascal, pero eso era porque era uno de los primeros idiomas que aprendido en la escuela).

+0

Es cierto. Todo mi pseudocódigo nunca sale de la pizarra. Esta es la razón por la que creo que el pseudocódigo, aunque normalmente se lo considera más cercano al lenguaje natural, puede extenderse al lenguaje específico que usted y sus colaboradores utilizarán. Por lo general, las personas que trabajan en el mismo proyecto usarán el mismo idioma, pero nuevamente solo trabajo en grupos pequeños o solo. –

1

Esquema de un programa, escrito en una forma que se puede convertir fácilmente en instrucciones de programación reales.

El seudocódigo no se puede compilar ni ejecutar, y no hay reglas reales de formato o de sintaxis. Es simplemente un paso, uno importante, para producir el código final. El beneficio del pseudocódigo es que permite al programador concentrarse en los algoritmos sin preocuparse por todos los detalles sintácticos de un lenguaje de programación particular.

Cuestiones relacionadas