Pseudocódigo de algunos materiales del curso MIT

votos
0

Nunca tuve mucha necesidad de escribir grandes cantidades de pseudocódigo formal, pero surgió la necesidad, así que pensé en elegir algunos estándares para mantener la coherencia entre códigos.

En ese sentido, recogí algunos videos de cursos de iTunes U, entre otros, la introducción a los algoritmos 6.046J / 18.410J (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-1cuando A[i+1] = key? Es decir, ¿ por qué en algunos casos y =en otro? Tenga en cuenta que en el código anterior, también se usa para este último, pero en los folletos, disponibles en la web, =se usa, ¿es simplemente un error tipográfico? (Asumo que sí)
  • Más importante, ¿por qué do key ← A[j]cuándo i ← j-1? ¿Qué es tan especial que requiere un docomando como ese y una sangría?

En otras palabras, ¿por qué no se escribe el pseudocódigo anterior de esta manera (con mis 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 pseudo-código a mano en alguna parte? Mi objetivo principal es la consistencia, de modo que solo tengo que enseñar a los destinatarios una vez.

Publicado el 15/09/2009 a las 13:19
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
1

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

Respondida el 15/09/2009 a las 13:40
fuente por usuario

votos
0

la flecha sirven como = en código normal.

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

por lo que j <- 1mediaj = 1

y j = 1 significaif( j == 1)

Respondida el 04/09/2013 a las 23:29
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more