Diferença entre um pseudo-código e algoritmo?


17

Tecnicamente, existe uma diferença entre essas duas palavras ou podemos usá-las de forma intercambiável? Ambos descrevem mais ou menos a sequência lógica de etapas a seguir na solução de um problema. não é? Então, por que realmente usamos duas dessas palavras se elas pretendem falar da mesma?

Ou, caso não sejam palavras sinônimos, o que as diferencia? Em que contextos devemos usar a palavra pseudo-código vs a palavra algoritmo?


4
Um algoritmo é quicksort. O pseudocódigo é "Faça-me um sanduíche e, depois de feito, traga-o para mim".
Neil

Veja esta resposta para outra pergunta. Descrevi uma relação entre um algoritmo e pseudocódigo.
Goran Jovic 21/05

3
A versão curta: 'Pseudo-código é uma das maneiras de representar um algoritmo'
Goran Jovic

3
@Neil ou mesmo Sudo faz-me um sanduíche xkcd.com/149
StuperUser

Respostas:


37

A definição de algoritmo da Wikipedia:

Em matemática e ciência da computação, um algoritmo é um método eficaz expresso como uma lista finita de instruções bem definidas para o cálculo de uma função. Algoritmos são usados ​​para cálculo, processamento de dados e raciocínio automatizado.

Os algoritmos podem ser descritos de várias maneiras, de fórmulas matemáticas puras a gráficos complexos, mais vezes do que não, sem pseudocódigo.

O pseudocódigo descreve como você implementaria um algoritmo sem entrar em detalhes sintáticos.

Então não, eles não são realmente sinônimos.


8

Um algoritmo é uma idéia sobre como escrever o código. Pseudo-código é o texto escrito que você precisa para comunicar essa ideia.


Agradável! Curto e reto. Mas eu diria "um texto escrito" do que "o texto escrito". O que você acha?
Luciano

6

"Pseudocódigo" é "algoritmo", como "inglês" é "brincadeira de brincadeira".

Um algoritmo é uma estrutura formal para algo que pode ser expresso em pseudocódigo ou em código real .

Uma piada de brincadeira é uma estrutura formal para algo que pode ser expresso em inglês ou em outro idioma. (Outras culturas fazem piadas? Eu nem sei.)


Acho que não. Pelo menos não há nada parecido em português sobre esse jogo. Então, eu diria que também não existe em outras línguas românicas, como espanhol e italiano. Não incluirei o francês porque ele teve um longo relacionamento com o inglês nas ilhas britânicas séculos atrás e não conheço outras línguas românicas, como o romeno e outras.
Luciano

3

Existe apenas um algoritmo quicksort, que é o tipo de coisa que existiria no mundo de idéias puras de Platão. Pode haver qualquer número de descrições diferentes de pseudo-código. Acho que definiria pseudo-código como texto que se parece com código de computador e poderia ser traduzido por um programador experiente em código de computador real sem ter que dar nenhum salto criativo.

Então não, eu não usaria os termos de forma intercambiável.


2

Um algoritmo é uma abordagem lógica sistemática usada para resolver problemas em um computador, enquanto Pseudocode é a declaração em inglês simples que pode ser traduzida posteriormente em uma linguagem de programação (programa).


2

Um algoritmo é a semântica, enquanto o pseudocódigo é apenas uma sintaxe da comunicação sobre a solução de um problema. Isso significa que o algoritmo é uma maneira real de resolver um problema, enquanto o pseudo-código é apenas uma maneira de se expressar dessa maneira.

Um algoritmo tem o mesmo significado (semântico) se você o expressar de alguma forma (sintaxe), seja linguagem de programação C, pseudo-código ou idioma inglês.


1

Pseudo-código como eu entendo é um intermediário entre um algoritmo e um programa implementado. Você pode basear seu pseudo-código em um algoritmo. Isso contém etapas transferíveis para implementar.

O algoritmo, por outro lado, implica a lógica geral. em etapas seqüenciais para resolver um problema. se for representado esquematicamente, é chamado de fluxograma.

Alguns podem se referir a isso como pseudocódigo, sendo um termo comum no desenvolvimento de software de negócios em que os desenvolvedores de objetos de negócios do lado do cliente gravam pseudocódigo com base nos requisitos. Isso é dado a um programador / desenvolvedor para implementar.

Algoritmo que você acharia mais comum na terminologia de programação, como programação de sistemas, pesquisa, classificação, basicamente em qualquer lugar onde exista uma lógica complexa a ser implementada.


1

Embora o pseudo-código pareça mais próximo do código do que um algoritmo, na prática, o pseudo-código é menos formal e é uma descrição de nível mais alto. Por exemplo, você pode descrever um computador jogando xadrez como um pseudo-código como este:

  • coloque as peças iniciais em seus locais
  • show board
  • enquanto o jogo ainda não acabou
    • fazer mover e exibir placa
    • prompt de usuário para mover
    • faça os usuários se moverem

Sim, esse é um pseudocódigo, é útil como um bom ponto de partida, mas encobre muitos detalhes. Ele não leva em consideração as dificuldades e variações de implementação, mas o maior benefício é que permite conceituar toda a situação sem precisar resolver todos os detalhes.

Você pode revisá-lo, adicionando mais um nível, assim:

  • coloque as peças iniciais em seus locais
  • show board
  • enquanto o conselho não é xeque-mate ou empate
    • faça uma lista dos movimentos legais das brancas
    • escolha o melhor de acordo com alguns critérios
    • faça esse movimento e calcule a placa resultante
    • veja se ocorreu xeque-mate ou empate
    • placa de exposição
    • faça uma lista dos movimentos legais do preto
    • prompt de usuário para mover legalmente a entrada
    • faça esse movimento e calcule a placa resultante
    • veja se ocorreu xeque-mate ou empate
    • placa de exposição

Agora você pode escrever pseudocódigo para cada uma das principais etapas, como "faça uma lista dos movimentos legais do preto", da seguinte forma:

  • para cada peça preta
    • para o tipo de peça em um determinado local
      • faça uma lista dos próximos locais possíveis

Agora você pode ver que o poder do pseudocódigo é realmente capaz de mostrar toda a situação de uma só vez e, em seguida, permitir que você lide com detalhes, peça por peça. O ponto fraco é que qualquer passo não é um passo simples e definitivo.

Um algoritmo geralmente seleciona uma dessas etapas e detalha várias estruturas de dados em uma linguagem simbólica, para que você possa cumprir com eficiência o objetivo da etapa.

Por exemplo, get_legal_moves(board, color)é digno de um design de algoritmo:

get_legal_moves(board, color):
    for i,j in board_dimensions
        if piece_at i,j is of color
            if piece type is KNIGHT
                add the following to the next moves list:
                    location i+1 j+2, i-1 j+2... etc
            if piece type is rook
                add locations:....

Você pode ver que o algoritmo precisa ser muito preciso para ser útil.

Ele garante várias coisas: que os objetivos sejam alcançados sem erros, em primeiro lugar. As etapas são muito detalhadas e executáveis ​​de maneira mecanizada e são pequenas o suficiente para que você possa reordená-las para aumentar a eficiência (velocidade) com a qual você termina a tarefa.


Parece haver decomposição de algoritmo de cima para baixo, expressa em pseudocódigo a cada etapa.
Nathan Tuggy

0

Pela minha experiência, o pseudocódigo sempre foi escrito por pessoas funcionais (pessoas que possuem o processo) como uma maneira de expressar as regras de negócios que se aplicam a um processo, módulo ou subsistema.

Um algoritmo é um conjunto difinitivo de instruções lógicas para resolver uma tarefa tão específica quanto possível.


0

Algoritmo é algo que é representado em termos matemáticos. Inclui análise, implementação básica (mesmo expressa em pseudo-código), considerações de complexidade (análise melhor, média e pior, etc.).

Pseudo-código é uma representação legível por humanos de um programa. Mesmo isso pode ser usado para descrever um algoritmo.


-2

Pseudo significa que o código único e pode ser uma instrução .. aqui Pseudo-código significa uma declaração que é usada para entender a linguagem de programação do computador facilmente ... ajuda na Analise do código de programação ... . onde como algoritmo é uma etapa lógica finita de instruções para resolver um problema.


1
isso parece não oferecer nada substancial sobre os pontos apresentados e explicados nas 10 respostas anteriores #
30617
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.