O pseudocódigo deve descrever toda a lógica do algoritmo para que a programação se torne uma tarefa de traduzir linhas de pseudocódigo em código real.
Para cada um dos itens a seguir, vamos discutir por que cada pseudocódigo pode ser considerado exemplos "bons" ou "ruins" de pseudocódigo:
Exemplo 1.1:
PROGRAM IsEvenOrOdd:
var num = number;
IF (num % 2 === 0)
THEN Print "even";
ELSE Print "odd";
ENDIF;
END.
P. O que pensamos?
R. Este não é um grande exemplo. Aqui estamos usando "var" em nosso pseudocódigo quando ele deveria ser lido em inglês simples! Além disso, não deveríamos usar a sintaxe javascript "===" em nossa condicional. Um não-programador saberia que
num % 2 === 0
indica um número par?
Exemplo 1.2:
PROGRAM IsEvenOrOdd:
Read number;
IF (number divided by two has no remainder)
THEN Print the number is even;
ELSE Print the number is odd;
ENDIF;
END.
P. O que pensamos?
R. Isto é melhor. Está mais próximo do inglês. Ele afirma claramente o que estamos tentando alcançar e como, sem nos prendermos às minúcias do código. Mesmo alguém que não codifica pode nos ajudar a verificar nossa lógica. Qualquer número que possa ser dividido por dois, de forma limpa - sem deixar resto - é par? Há mais alguma coisa estranha?
De Seja criativo hoje
Exemplo 2.1:
Make PB&J Sandwich:
Gather bread, peanut butter and jelly.
Apply peanut butter to slice of bread.
Apply jelly to another slice of bread.
Bring the two slices of bread together.
Eat and enjoy.
P. O que pensamos?
R. Este é um bom lugar para começar. É um bom conjunto de instruções e intuitivo para seguirmos. No entanto, ainda não sabemos quais etapas físicas são necessárias.
Reserve um segundo para imaginar. Imagine se você nunca tivesse feito um sanduíche antes. Sempre. Pense nas instruções que você precisaria para o primeiro sanduíche. Um computador não tem memória real. Cada vez que inicia uma tarefa, não se lembra de tê-la executado antes. Devemos contá-lo a cada passo, a cada vez. Precisamos dividi-los em etapas menores para que o computador entenda.
Exemplo 2.2:
PROGRAM MakePB&JSandwich:
Grab a paper plate;
Open bread container;
Grab bread package;
Untwist bread package;
Open bread bag and remove two slices;
Place slices on paper plate;
Grab a plastic knife;
Open peanut butter jar;
Use knife to scoop out peanut butter;
Apply peanut butter to one slice of bread;
Spread peanut butter on slice;
Place knife on plate;
Close peanut butter jar;
Open jelly bottle;
Squeeze jelly onto second bread slice;
Close jelly bottle;
Place down jelly;
Pick up knife;
Spread jelly on slice;
Bring two slices of bread together;
Cut slices in half down the middle;
Throw knife in the trash;
Pick up one half of sandwich;
Enjoy;
END.
P. O que pensamos?
A. A sequência deste exemplo é muito completa! No entanto, ainda estamos assumindo certas condições de que nossos utensílios ou ingredientes já existem. E se ficarmos sem pratos? Vamos pegar um guardanapo para colocar nosso sanduíche? E se ficarmos sem gelatina? Você vai jogar o sanduíche fora ou comê-lo só com manteiga de amendoim?
Os computadores não são inteligentes. Precisamos dar-lhes instruções passo a passo para explicar as condições. Eles não podem se adaptar para fazer mudanças sem serem explicitamente informados. A programação é uma série de tarefas que só podem ser concluídas se um certo número de condições forem atendidas.
Os computadores não podem se adaptar, mas nós podemos. Sua primeira passagem pelo pseudocódigo provavelmente não cobrirá tudo. Depois de saber mais, você poderá voltar para atualizar e refatorar seu pseudocódigo.
O pseudocódigo não consiste apenas em anotar as etapas que você já conhece. É uma ferramenta para ajudá-lo a resolver o problema. Antes de podermos escrever pseudocódigo para resolver o problema, precisamos conhecê-lo.
Aqui estão algumas etapas que podem ajudar na resolução de problemas:
Finalmente, tomamos algumas medidas. É quando finalmente começamos a escrever código. Lutamos muito para dar pequenos passos, verificar se cada passo alcança o que queremos, o que esperamos, antes de continuar. Se fizermos muitas coisas ao mesmo tempo e as coisas quebrarem, o que sempre acontece, não saberemos o que está causando o problema. Não saberemos em que parte confiar. Os humanos prosperam com vitórias fáceis. Precisamos ver o progresso futuro. Lembre-se disso. Use isso. Comemore suas vitórias.
P. Onde o pseudocódigo se enquadra nessas etapas?
A. Divida OU Comece pequeno
Este processo é iterativo. Continuamos circulando e repetindo os passos anteriores, só que em um nível diferente.
Quando abordamos um problema pela primeira vez, vemos o quadro geral. "Break it down" nos dá grandes passos. Então, damos uma dessas etapas e "Break it down". Agora, começando aos poucos, escrevemos pseudocódigo para ajudar a ilustrar o problema.
A pseudocodificação prova que identificamos o problema, o entendemos conceitualmente e o dividimos em pequenos passos que podemos seguir.
Não existe uma sintaxe fixa para pseudocódigo. Só precisa ser claro, simples e conciso.
Se você se sentir preso, sinta-se à vontade para usar esta sintaxe:
Referenciação: Introdução ao Pseudocódigo
Estrutura Geral do Pseudocódigo
PROGRAM <ProgramName>:
<Do Stuff>
END.
Seleção: Instruções IF/ELSE
IF (<Condition>)
THEN <Statements>;
ELSE <Statements>;
ENDIF;
Iteração: LOOP
WHILE (<Condition>)
ENDWHILE;
Siga as instruções em starter_code/pseudo_code_practice.md