Pseudocódigo de algunos cursos del MIT
-
07-07-2019 - |
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
cuandoA[i+1] = key
? Es decir, ¿por qué←
en algunos casos y=
en otro? Tenga en cuenta que en el código anterior, eldo key ← A[j]
también se usa para este último, pero en los folletos, disponibles en la web, se usado
, ¿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.
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 <=>