Pseudo-code d'un didacticiel du MIT
-
07-07-2019 - |
Question
Je n'ai jamais eu grand besoin d'écrire de grandes quantités de pseudo-codes formels, mais le besoin s'est fait sentir, alors j'ai décidé de choisir des normes afin de rester cohérent d'un code à l'autre.
À cet effet, j'ai pris quelques & "iTunes U &"; des vidéos de cours, entre autres choses, 6.046J / 18.410J Introduction aux algorithmes (SMA 5503) .
Dans la toute première vidéo de la conférence, le conférencier écrit Insertion Sort au tableau, et il écrit ceci:
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
Alors, mes questions:
- Pourquoi
i ← j-1
quandA[i+1] = key
? Pourquoi←
dans certains cas et=
dans un autre? Notez que dans le code ci-dessus,do key ← A[j]
est utilisé pour ce dernier également, mais dans les documents disponibles sur le Web,do
est utilisé. S'agit-il simplement d'une faute de frappe? (Je suppose donc) - Plus important encore, pourquoi <=> quand <=>? Qu'est-ce qui est si spécial qu'il nécessite une <=> commande comme celle-là et une indentation?
En d'autres termes, pourquoi le pseudo-code ci-dessus n'est-il pas écrit comme ceci (avec mes points forts):
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
Dernière question: Quelqu'un at-il un code standard pour pseudo-code pratique quelque part? Mon objectif principal est la cohérence, de sorte qu'il ne me reste plus qu'à & "Enseigner &"; les destinataires une fois.
La solution
L'anglais structuré est un langage de pseudo-code 'normalisé'.
Autres conseils
la flèche sert de = dans le code normal.
le signe égal dans le pseudo sert de == dans le code normal
donc j <- 1
signifie j = 1
et if( j == 1)
signifient <=>