Pseudo-código de alguns cursos do MIT
-
07-07-2019 - |
Pergunta
Eu nunca tive muita necessidade de escrever grandes quantidades de pseudo-código formal, mas surgiu a necessidade, então eu pensei que eu ia escolher alguns padrões a fim de permanecer consistente em código.
Para o efeito Peguei alguns "iTunes U" vídeos de cursos, entre outras coisas, a 6.046J / 18.410J Introdução aos Algoritmos (SMA 5503) .
No primeiro vídeo palestra, o professor escreve ordenação por inserção no quadro negro, e ele escreve o seguinte:
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
Então, minhas perguntas:
- Por
i ← j-1
quandoA[i+1] = key
? Isto é, por←
em alguns casos, e=
em outro? Note que no código acima, o←
é usado para o último também, mas nas apostilas, disponíveis na web,=
é usado, este é simplesmente um erro de digitação? (Eu assumo isso) - Mais importante, por
do key ← A[j]
quandoi ← j-1
? O que é tão especial que requer um comandodo
assim, e um recuo?
Em outras palavras, por que não é o pseudo-código acima escrito assim (com meus destaques):
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
Última pergunta: Alguém tem um padrão de código para pseudo-código em algum lugar acessível? Meu objetivo principal é a consistência, de modo que eu só tenho que "ensinar" os destinatários de uma vez.
Solução
Inglês Estruturado é um 'padronizado' linguagem pseudo-código.
Outras dicas
a seta servir como = no código normal.
sinal de igual no pseudo servir como == no código normal
para j <- 1
j = 1
média
e j = 1
if( j == 1)
média