Pregunta

Nunca tuve mucha necesidad de escribir grandes cantidades de pseudocódigo formal, pero surgió la necesidad, por lo que pensé en elegir algunos estándares para mantener la coherencia en todo el código.

En ese sentido, recogí algunos " iTunes U " videos del curso, entre otras cosas, el 6.046J / 18.410J Introducción a los algoritmos (SMA 5503) .

En el primer video de la conferencia, el profesor escribe Insertion Sort en la pizarra, y escribe esto:

Insertion-Sort(A, N) // Sorts A[1..n]
  for j ← 2 to n
    do key ← A[j]
      i ← j-1
      while i > 0 and A[i] > key
        do A[i+1] ← A[i]
          i ← i-1
      A[i+1] ← key

Entonces, mis preguntas:

  • ¿Por qué i ← j-1 cuando A[i+1] = key? Es decir, ¿por qué en algunos casos y = en otro? Tenga en cuenta que en el código anterior, el do key ← A[j] también se usa para este último, pero en los folletos, disponibles en la web, se usa do, ¿esto es simplemente un error tipográfico? (Supongo que sí)
  • Más importante, ¿por qué <=> cuando <=>? ¿Qué es tan especial que requiere un comando <=> como ese y una sangría?

En otras palabras, ¿por qué el pseudocódigo anterior no está escrito de esta manera (con mis aspectos más destacados):

Insertion-Sort(A, N) // Sorts A[1..n]
  for j ← 2 to n
    key ← A[j]                  <-- lost the do here
    i ← j-1                     <-- no indentation
    while i > 0 and A[i] > key
      A[i+1] ← A[i]             <-- lost the do here
      i ← i-1                   <-- no indentation
    A[i+1] ← key

Pregunta final: ¿Alguien tiene un código estándar para el pseudocódigo a mano en alguna parte? Mi objetivo principal es la consistencia, de modo que solo tengo que & "; Enseñar &"; los destinatarios una vez.

¿Fue útil?

Solución

El inglés estructurado es un lenguaje de pseudocódigo 'estandarizado'.

Otros consejos

la flecha sirve como = en código normal.

signo igual en pseudo servir como == en código normal

entonces j <- 1 significa j = 1

y if( j == 1) significan <=>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top