Que tipos de linguagem existem para formalizar algoritmos?

38 visualizações
Existem diversas linguagens para formalizar algoritmos, mas as mais comuns são: Descrição Narrativa: Utiliza linguagem natural, porém informal e sem rigor matemático. Fluxograma: Representação gráfica, usando símbolos para indicar ações e fluxo de execução. Ideal para visualização. Pseudocódigo: Linguagem estruturada, mais formal que a narrativa, mas menos rígida que uma linguagem de programação. Combina elementos de várias linguagens.
Comentário 0 curtidas

Linguagens formais para algoritmos: quais são?

Linguagens formais para algoritmos? Hum, vamos ver...

Pra mim, algoritmo sempre me lembrou aquelas receitas de bolo da minha avó, sabe? Ela não falava em "linguagem formal", mas tinha um jeito dela, super específico, pra explicar como fazer o bolo de fubá perfeito. Acho que isso já era meio caminho andado pra entender a lógica por trás das coisas.

Dos que você mencionou, "descrição narrativa" me parece o mais... humano? É tipo contar uma história, só que pra um computador entender. Já o fluxograma, confesso, sempre achei meio chatinho. Cheio de quadradinhos e setas, me dá um nó na cabeça! E o pseudocódigo... ah, o tal do "portugol"! Lembro de ter usado isso na faculdade, lá por 2008. Era tipo um português "arrumadinho" pra máquina entender. Uma trabalheira, mas ajudava a clarear as ideias.

Resumindo, se for pra escolher, fico com a descrição narrativa. Mais intuitiva, menos robotizada. Mas cada um tem seu jeito, né?

Como se elabora um algoritmo?

Elaborar um algoritmo... é quase como tentar entender a vida, passo a passo.

  • Definir o problema: Primeiro, encarar o que realmente precisa ser resolvido. Qual a pergunta que assombra, qual a dor que precisa ser aliviada? Lembro de uma vez, tentando entender porque me sentia tão perdido. Era a falta de um objetivo claro, a ausência de um problema bem definido.

  • Entender entradas e saídas: O que entra, o que sai. Quais os ingredientes, qual o prato final? Na minha vida, as entradas eram minhas ambições, meus sonhos. A saída? A realidade, nem sempre como eu esperava.

  • Desenhar o fluxo lógico: A sequência dos acontecimentos. A lógica que, supostamente, deveria nos guiar. Mas a vida raramente segue um fluxo linear, não é?

  • Usar estruturas de controle: As decisões, os caminhos que escolhemos. Sequência, seleção, repetição... Quantas vezes repeti os mesmos erros, preso em ciclos viciosos?

  • Testar e depurar: A fase da verdade. Ver se o que foi planejado realmente funciona. E corrigir, ajustar. Aceitar que nem sempre acertamos de primeira.

  • Documentar: Registrar o processo. Para não esquecer, para aprender com os erros. Para, talvez, ajudar alguém que se sinta tão perdido quanto eu.

Quais são as 3 formas principais de se representar um algoritmo?

Três da manhã. A insônia me pegou de novo. A cabeça cheia de... coisas. Pensando em algoritmos, ironicamente. Aquele trabalho da faculdade... Descrição narrativa: Me lembro de ter usado isso muito no início, explicando cada passo com palavras. Simples, mas… limitado. Ficava difícil visualizar o fluxo. Não me agradava muito, a verdade seja dita.

Fluxograma: Ah, os fluxogramas… Visualmente mais apelativo, aqueles quadradinhos, losangos, setas… Era mais fácil seguir a lógica, mas… cansativo de desenhar, principalmente quando o algoritmo era complexo. Desenhava tudo à mão, meu caderno estava um horror. Lembro que usava régua, lápis e borracha, e ainda assim ficava torto. Já perdi as contas de quantos fluxogramas fiz.

Pseudocódigo: Essa foi a minha salvação. Uma mistura de linguagem natural e comandos de programação. Mais legível que o código propriamente dito, e bem mais estruturado que a narrativa. Me ajudou muito a organizar minhas ideias antes de partir para a programação em Java no meu trabalho atual. Prefiro mil vezes o pseudocódigo.

Quais são os níveis de linguagem de programação?

Níveis de Linguagem de Programação? É tipo escolher entre usar um ábaco ou um supercomputador! ????

  • Linguagem de Baixo Nível: É tipo conversar diretamente com o chip! Sem frescura, tudo no detalhe. Imagine ter que explicar para o computador exatamente como somar 2 + 2! ???? É próximo do hardware, tipo mecânico de carro fuçando no motor. É onde a coisa acontece de verdade, mas dá um trampo danado!

    • Exemplos: Assembly (aquelas letrinhas e números que ninguém entende direito) e código de máquina (só 0 e 1, pra deixar qualquer um maluco).
  • Linguagem de Alto Nível: É a moleza da programação! Tipo usar um tradutor automático pra falar com o computador. Você dá as ordens em "português" (ou inglês, sei lá), e a linguagem se vira pra fazer o computador entender. É mais fácil de usar, mas rola um "enrolation" pra chegar no resultado final.

    • Exemplos: Python (a queridinha da galera), Java (a "tia" da programação), C++ (o "faz tudo"), JavaScript (o rei da web) e muitas outras.

Resumindo: Baixo nível é rústico e poderoso, alto nível é chique e "preguiçoso". A escolha depende do que você quer fazer e de quanta dor de cabeça está disposto a encarar! ????

Como devem ser definidos os passos de um algoritmo?

Tipo, algoritmo... como definir isso? Que doideira!

  • Fim em tempo finito: Tem que acabar, né? Ninguém merece um looping infinito! Lembrei daquela vez que meu programa travou e tive que reiniciar o PC no botão... Horrível!
  • Recursos finitos: Não dá pra usar memória infinita! Tipo, meu celular já reclama com 5 fotos, imagina um algoritmo?
  • Passos precisos: Imagina a receita de bolo: "Coloque farinha... um tanto assim...". Ia dar ruim! Tem que ser tipo "2 xícaras"!
  • Sequência clara: Primeiro o ovo, depois o leite... ou tanto faz? Numa receita, a ordem importa! No algoritmo também.
  • Sem ambiguidades: "Aqueça até dourar"... Mas dourar o quê? Tem que ser específico, tipo "180 graus por 20 minutos".

Acho que é isso. Algoritmo = receita de bolo para o computador, hahaha! Preciso ir comprar pão de queijo.