Quando eu usaria o pseudocódigo em vez do fluxograma?


9

Sou um estudante que trabalha com várias técnicas de programação e me deparei com pseudocódigo e fluxograma. Eu sei que ambos são usados ​​para refletir sobre o problema antes de realmente programar, mas eu tenho algumas perguntas com isso.

  1. Quando eu usaria o pseudocódigo para planejar e quando eu usaria fluxogramas? Ou é melhor fazer as duas coisas antes de realmente programar. Particularmente para um pequeno jogo de arcade em JAVA, já que esse é o meu próximo projeto.
  2. Percebi que o pseudocódigo é muito semelhante ao código real, e não aos fluxogramas. Isso tornaria o pseudocódigo melhor porque você essencialmente copia / cola o pseudocódigo no seu programa (é claro, você precisa alterá-lo para se adequar ao idioma. Entendo essa parte).
  3. É prático usar ambos durante a programação? Particularmente o mesmo jogo mencionado anteriormente. Obrigado.

Obviamente, você não usaria fluxogramas onde não há fluxo - ou seja, para quase todas as entidades declarativas.
SK-logic

11
Na verdade, não me lembro da última vez que vi um fluxograma de codificação. Diagramas de classe e de fluxo de dados, diagramas de casos de uso, sim. Mas não fluxogramas. Talvez eles sejam mais prevalentes no desenvolvimento de jogos.
Robert Harvey

Diagramas @RobertHarvey, FSM (que são, essencialmente, fluxogramas) são utilizados muitas vezes no design de hardware
SK-logic

Respostas:


7

Os fluxogramas e o pseudocódigo geralmente têm o mesmo nível de expressividade, mas diferem na linearização. O pseudocódigo é linear (isto é, uma sequência de linhas com instruções), um fluxograma não. Portanto, os fluxogramas são um nível de abstração mais alto, usado antes da gravação do pseudocódigo ou da documentação.

Fluxogramas têm, na minha opinião, duas fortes vantagens sobre o pseudocódigo: primeiro, eles são gráficos. Muitas pessoas não técnicas têm um forte medo de texto estruturado, mas não de descrições gráficas; portanto, os fluxogramas serão muito mais agradáveis ​​com eles. Em segundo lugar, os fluxogramas são muito melhores para expressar meta-considerações, como mostrar a principal linha de execução em oposição às ramificações.

Suas perguntas em detalhes:

  1. Para um problema realmente complicado, você usaria primeiro os fluxogramas e depois o pseudocódigo. Ambos são opcionais quando você se sentir seguro o suficiente.
  2. Sim, o pseudocódigo tem a vantagem de ser mesclável com código real. Steve McConnell, por exemplo, recomenda enfaticamente os métodos de gravação no pseudocódigo primeiro e depois deixa o pseudocódigo no código como comentários.
  3. Sempre achei que a necessidade de desenhar um fluxograma durante o design mostra uma partição insuficiente do seu problema. Fluxogramas não triviais indicam lógica complicada, que deve ser evitada com grandes custos.

11
Os fluxogramas também são ótimas maneiras de garantir que cada ponto de decisão defina as ações para o (s) caminho (s) menos comum (s) e também o mais comum. Isso ajuda a garantir que você saiba o que fazer quando a aprovação for negada ou o pedido for cancelado! Muitas vezes, existem mais erros nos casos extremos, porque as pessoas esquecem-se de fazê-los ou com pressa durante o controle de qualidade quando o teste os encontra.
HLGEM

2

No pseudo-código

Para ser sincero, não uso muito o pseudocódigo. Normalmente, é mais rápido escrever o código, para que, quando eu terminar com o meu código, seja um código real. Existem alguns casos em que o pseudocódigo pode ser útil, mas geralmente você está trabalhando em algo muito complexo e apenas tentando quebrar a estrutura de um método ou algo assim. Nesses casos, eu uso comentários no meu IDE para organizar a estrutura até eu acertar as coisas. Então, escrevo o código real nos comentários. Isso me ajuda a fazer algumas coisas:

  • Eu posso ver as áreas que tenho e não as implementei lendo os comentários e vendo lacunas óbvias neles.
  • Quando preencho o código real, tenho comentários explicando em inglês o que estou fazendo. (Eles provavelmente precisarão se for tão complicado que eu preciso escrever primeiro o pseudo-código).

Nos fluxogramas

O código geralmente muda tanto que os fluxogramas não são úteis, exceto pelo design ou documentação da arquitetura maior e mais abrangente do sistema. Nesses casos, mostrarei um diagrama no quadro branco para entender a essência das coisas ou mostrar a alguém da equipe. A menos que você realmente precise de um fluxograma para ajudá-lo a entender, então você realmente não precisa deles para "fazer" o software corretamente. Atualmente, existem muitos plugins para IDEs que irão gerar fluxogramas a partir do próprio código, bem como diagramas de classes e outros (e vice-versa `). O único tempo real que você precisaria para fazer um fluxograma seriamente preciso é se você não consegue manter toda a arquitetura e como as coisas funcionam em sua cabeça de uma só vez e precisa conversar sobre algo visual para capturar distorções.


0

Geralmente não escrevo fluxogramas enquanto trabalho em projetos pessoais (como os projetos não são muito grandes) e a maioria das entradas, saídas e processos é clara.

mas como você começará a trabalhar em grandes projetos complexos com diferentes fontes de entrada, arquivos simples, bancos de dados, interfaces manuais, etc fluxogramas são úteis.

Eu recomendaria que você escrevesse pseudo-código e digrams UML, pois essas ferramentas o ajudarão a criar melhores classes, métodos etc. Às vezes, ao escrever o pseudo-código, você encontrará maneiras diferentes e mais eficientes de resolver um programa.


0

O pseudo-código é para representar rapidamente uma idéia para aqueles que entendem pelo menos o básico do código. Os fluxogramas estão desenhando figuras bonitas para todos os outros entenderem a mesma coisa.

Os fluxogramas são frequentemente usados ​​para fins de documentação, porque muitas pessoas diferentes usam essa documentação e fluxogramas são mais fáceis de seguir do que o pseudocódigo para não programadores. Em um projeto no qual você está trabalhando, manter o pseudo-código é bom, pois é muito mais útil e muito mais fácil de criar, pois um editor de texto é tudo o que você precisa.


0

Os fluxogramas são um alto nível de abstração e permitem planejar como as coisas devem acontecer. Por exemplo

se x morre y ganha

Eles não precisam depender de como você está projetando o programa em termos de classes e métodos, por outro lado, o pseudo-código fornece um nível mais baixo de abstração (embora realmente dependa)

if (isdead (s)) y.win ()

assim, o pseudocódigo agora pode ser traduzido para o programa atual com base no idioma que você está usando.

Para um jogo, eu recomendaria usar um fluxograma primeiro, depois projetar as classes e métodos, escrever pseudo-código e finalmente convertê-lo em um programa


0

Eu consideraria a natureza do código que você está escrevendo. Se for:

  1. Altamente iterativo / recursivo
  2. Ramos de maneiras complicadas
  3. Implementado em vários sistemas, que você deseja representar

Nos dois primeiros casos, o pseudocódigo se torna progressivamente mais difícil de ler do que um diagrama geral. Por outro lado, o código que é principalmente linear faz diagramas incrivelmente chatos que tornam o processo mais difícil de entender por causa de quanto o explode.

Para o terceiro caso, os fluxogramas são melhores para representar processos que ultrapassam os limites do sistema e representam todo o processo.


0
  1. Você deve usar o que quiser. Dito isso, minha impressão é que os fluxogramas não são muito usados ​​para esboçar o controle do programa atualmente; por um lado, eles geralmente não são estruturados, em comparação com o pseudocódigo. É mais comum usar diagramas de dependência de classe como UML, para descrever sua arquitetura em um nível muito mais alto. Além disso, se seu aplicativo tiver uma máquina de estado, é essencial desenhar um diagrama de máquina de estado (semelhante ao fluxograma).
  2. Eu acho que você está correto aqui. Uma maneira de trabalhar é escrever seu pseudocódigo como comentários no arquivo de origem, para começar, e inserir as linhas de implementação reais entre eles.
  3. Mais uma vez, use o que você se sentir confortável. Se você não tiver certeza, experimente os dois; Espero que sua prática converja rapidamente no que for mais útil para você. Pessoalmente, não considero os fluxogramas úteis, a menos que esteja tentando desembaraçar uma ordem de execução particularmente complicada.

0

Por que escrever pseudo-código quando você pode escrever Java? Eu descobri que Java, um bom IDE e Javadoc são a maneira mais fácil de entender um problema de programação - pelo menos um Orientado a Objetos . (E um jogo de arcade deveria ser OO.) A linguagem foi projetada desde o início para isso. É simples e direto. (Muito simples para muitos propósitos, talvez, mas a melhor coisa que eu já vi para isso.) O hipertexto no Javadoc e, via IDE, no próprio código, cria um "diagrama" mais compreensível do que você poderia desenhar uma grande folha de papel. O código Java é tão simples quanto qualquer pseudo-código e muito mais rigoroso. E uma vez que você tenha "diagramado" e "pseudo" codificado, o programa realmente será executado!


11
java e outros podem ser extenuados por muito tempo. "public static void main .." ou "system.out.println" ou identificadores longos com notação camelback, extenuados por lá.n então exceções que 2b capturaram .. E chamar qualquer biblioteca pode ser lembro há 10 anos abrindo um arquivo. algo como o novo BufferedReader (new InputStreamReader (System.in)); aparentemente mais fácil agora mkyong.com/java/... Mas realmente qualquer biblioteca que você chama poderia ser prolixo, não como pseudocódigo que pode ser tão concisa como você pode imaginar
barlop

também em java ou em qualquer idioma, você encontra erros na compilação. nada disso com pseudocódigo. você se concentra no design sem distração. Os comentários sobre o pseudocódigo podem ser muito mais breves, pois o pseudocódigo é mais claro para a mente, pois é da mente. Você não está limitado pensando em apenas um idioma e pode ver que eu vou usar esse outro idioma. É mais rápido e menos doloroso escrever (não são necessárias compilações - mesmo os mais fluentes obtêm erros de compilação) e, portanto, menos tempo para escrever facilita a reformulação.
Barlop #

@ Barlop: Funciona para mim, mas pode não funcionar para todos. Deixo muito código ("BufferedReader", por exemplo) das minhas aulas até precisar ou precisar saber se posso fazê-lo funcionar. Mesmo quando eu o tenho, ele fica bem escondido nas aulas que não preciso olhar ao considerar o design geral. Os erros do compilador são facilmente corrigidos e podem impedir grandes falhas de design, como o uso da classe errada em um ponto em que você não consegue nem obter uma instância da classe certa. Eu admito, eu tenho "projetado" software desta forma que poderia única ser escrito em Java, mas o OP é usando Java.
RalphChapin

digamos que você queira abrir um arquivo, vê como o pseudocódigo do openfile ("c: \ blah \ file") é mais curto que o java para fazê-lo? ou que a impressão "dfdfd" é mais curta que o java para fazer isso? Eu nunca fiz (ainda) páginas de pseudocódigo e várias classes. em parte porque não escrevo grandes programas em idades b) em parte porque não acho que escreveria, acho que escreveria algum pseudocódigo e depois o implementaria. Qualquer outro pseudocódigo, se houver algum, seria de nível superior. Eu posso ter uma lista de todas as classes e métodos, incluindo construtores. Então eu sei o que as classes são o que e que eu possa obter uma instância dele ..
barlop

então eu não estaria em uma situação de usar a classe errada, mas de qualquer forma, se for o meu programa, eu anotaria em minhas anotações qual classe é o que ... classes são de alto nível. eu teria uma nota sobre isso se não me lembro. E pseudocódigo tem tudo a ver com o que significa, então, se você quis fazer uma instância da classe blá e escreveu bleh, então é apenas um erro de digitação, mas isso não atrapalha seu design. (se você está escrevendo para si mesmo, porque sabe o que quer dizer e o usou como um blá).
Barlop #

0

Você pode usar um fluxograma se estiver realmente confuso com as instruções if e estiver tentando entender isso. Ou, se você estiver tentando entender um loop, veja o efeito dos contadores. Se você está aprendendo, pode ajudar muito.

Pode parecer um pouco restritivo, porque você precisa colocar breves declarações em caixas. E se seu programa é muito linear e seus loops e ifs são triviais, não vejo utilidade para ele.

O pseudocódigo é útil para projetar um programa. Sem a distração de ter que obter a sintaxe correta e sem o esforço longo que algumas linguagens podem envolver. O fato de ser mais rápido escrever também facilita a redefinição do código. E você pode ser tão conciso quanto sua mente deseja, é agradável de escrever, requer menos esforço mental para fazê-la funcionar (como nenhuma ou muito menos depuração) e mais capacidade de se concentrar no quadro geral e no design.

Então, útil para você.

Eles também podem ser usados ​​para se comunicar com os outros.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.