Lógica de Programação (Algoritmos)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Lógica de Programação (Algoritmos)

Mensagem por williamd1k0 em 17.09.15 3:47

Olá, vou começar a escrever tutoriais sobre linguagem de programação aqui.
Vou fazer isso pois reparei que boa parte do pessoal começa a programar com o Ren'Py sem nem ao menos tem uma base de lógica, que é o básico pra qualquer linguagem.

Meu objetivo é ensinar o básico de lógica aqui e em outros tópicos ensinar os básicos de Python, que podem ser muito importantes. Como essa parte vai ser reservada a programação em geral, caso alguém queira tirar dúvidas de outras linguagens, sinta-se a vontade, já deixo adiantado que tenho conhecimento em Java, Javascript e HTML/CSS.

Sobre a lógica, muita gente já deve saber uma parte dela, a matemática. Creio que não precise entrar nesse mérito já que isso se aprende no colégio normal.

Outra parte da lógica estuda a forma de pensar. Essa é importante para compreender os "algoritmos".
Apesar dessa palavra lembrar logaritmos (coisa que muitos devem saber que é um tanto quanto difícil), algoritmo é um conceito muito simples.

Algoritmo é basicamente uma sequência de passos. O exemplo mais simples e comum seria uma receita de bolo. Não a parte dos ingredientes, mas a parte do "modo de preparo".

Um exemplo: Misturar leite, ovos e trigo, mexer bem, misturar o fermento e depois assar.
Apesar disso parecer bem simples, suponhamos que você coloque o fermento antes de tudo.
Qual consequência isso teria? Na verdade você não tem como saber, seria literalmente uma "tentativa e erro" que poderia arruinar a receita mas também poderia melhorá-la.

Mas isso não é tudo, um algoritmo precisa ser minunciosamente detalhado, isso porque na programação não tem outro jeito, já que o computador é mais burro do que você imagina. Isso faz com que você tenha que descrever o que tem que fazer e o que não tem.

Refazendo a receita como um algoritmo mais detalhado:

Pegar caixa de leite, pegar ovos, pegar trigo, abrir caixa de leite, despejar leite na batedeira, quebrar ovos, despejar ovos na batedeira, abrir pacote de trigo, despejar trigo na batedeira, ligar batedeira, esperar até a massa ficar uniforme, pegar pote de fermento, despejar fermento na batedeira, esperar alguns minutos, desligar a batedeira, untar a forma, despejar a massa na forma, colocar a forma no forno, ligar o forno, esperar alguns minutos, desligar o forno.

Se você não teve saco pra ler até o fim não tem problema :V
Programação é uma coisa que as vezes se torna repetitiva, aí nós criamos coisas para facilitá-la (mas isso fica pra depois).

Se você tem uma boa percepção lógica, deve ter notado falhas no algoritmo.
Por exemplo: quando que foi pega a batedeira? Resposta: não foi
Em um programa isso já daria erro no início.

Outro detalhe são os excessos de detalhe, como por exemplo: "quebrar ovos, despejar ovos na batedeira". Porque não simplesmente dizer "despejar na batedeira"?
Como eu disse, o computador é burro, ele iria saber que tem que despejar alguma coisa na batedeira, mas não saberia que coisa despejar.

Depois da sequência linear dos passos, ainda tem as não lineares, como fluxos de controle.
Vamos supor que não tivesse leite. O que fazer?
Nesse caso entraria uma sequência comparativa (SEs e SENÃOs).
SE tiver leite, então use leite. SENÃO, use água.
Esse tipo de comparação não tem limite, como por exemplo:
SE tiver leite, então use leite. SENÃO, SE tiver água, então use água. SENÃO, não vai dar pra fazer esse bolo (seria como um fim prematuro do programa).

Depois desse tipo de controle, temos os controles de repetição.
Por exemplo, como saber quando colocar o fermento? Usamos uma repetição (ENQUANTO).
ENQUANTO a massa não estiver uniforme, continue mexendo.
Aí quando a massa já estiver uniforme, o comparativo vai dar falso e vai acabar essa repetição.

Os básicos de algoritmo são só esses mesmo, mas como forma de já acelerar aprendizado, vou exemplificar uma situação em que alguma coisa interage com a receita.

Um programa pode ler dados de um usuário, por exemplo, e na programação, é muito comum o usuário ser tão cabeça dura quanto o computador (sem ofensas :V).
Por exemplo: Você tem um cadastro pra preencher e precisa digitar seu peso, mas como você é zuero, vai digitar letras ao invés de números. Isso é muito comum, a maioria das falhas de programas são causados por quem está usando, e não por quem fez. Em muitas linguagens, isso geraria um erro do tipo: "estava esperando números mas foi digitado letras" e o programa "morre".

Voltando na receita, vamos considerar a interação do usuário, poderia ser em relação a quantidade dos ingredientes, por exemplo, mas isso só iria ter uma mudança no fim da receita, depois de ter assado.
Vamos supor que a pessoa seja desastrada e acabe derrubando casca de ovo dentro da batedeira na hora de quebrá-los. Isso seria uma coisa que teria consequências no mesmo instante, e isso poderia arruinar toda a receita e ter que refazer do zero (o programa morre inesperadamente e precisa reabri-lo). Isso na pior das hipóteses, mas sempre tem aquele site que diz como salvar aquela receita de forma milagrosa sem ter que refazer do zero.

Na programação é a mesma coisa, e vou mostrar isso também mais pra frente.
Amanhã eu posto mais coisas já entrando na linguagem em si.

_________________
avatar
williamd1k0
Regular
Regular

Masculino Mensagens : 82
Data de inscrição : 19/04/2015
Localização : Paraná
Projetos : Ren'Py for Atom

Ver perfil do usuário https://github.com/williamd1k0

Voltar ao Topo Ir em baixo

Re: Lógica de Programação (Algoritmos)

Mensagem por Kloson em 17.09.15 20:20

Muito bom william :3
Achei bem interessante sua aula, bom para o pessoal que está começando na área da programação. E legal que já abordou as condicionais e os laços de repetição.

Uma dica que dou é colocar informações importantes em negrito, assim ficará bem mais fácil de ler. Outras em maiúsculas. Ficaria bem mais fácil de ler :3

Muito bom, parabéns Very Happy
avatar
Kloson
Moderador

Masculino Mensagens : 79
Data de inscrição : 25/08/2015
Projetos : Tempo Livre

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Lógica de Programação (Algoritmos)

Mensagem por williamd1k0 em 17.09.15 23:45

Ah sim, valeu a dica, vou editar depois Smile

_________________
avatar
williamd1k0
Regular
Regular

Masculino Mensagens : 82
Data de inscrição : 19/04/2015
Localização : Paraná
Projetos : Ren'Py for Atom

Ver perfil do usuário https://github.com/williamd1k0

Voltar ao Topo Ir em baixo

Re: Lógica de Programação (Algoritmos)

Mensagem por tetsunochan em 21.09.15 11:29

Essa matéria fazem muitos correrem da área de programação hehe Smile
avatar
tetsunochan
Iniciante
Iniciante

Feminino Mensagens : 18
Data de inscrição : 04/09/2015

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Lógica de Programação (Algoritmos)

Mensagem por williamd1k0 em 21.09.15 19:43

Pois é, e é a mais importante.
A lógica é a porta de entrada pra qualquer linguagem, e nem é nenhum bicho de 7 cabeças, é só uma coisa trabalhosa.
Vou tentar aplicar isso em python da forma mais clara possível Smile

_________________
avatar
williamd1k0
Regular
Regular

Masculino Mensagens : 82
Data de inscrição : 19/04/2015
Localização : Paraná
Projetos : Ren'Py for Atom

Ver perfil do usuário https://github.com/williamd1k0

Voltar ao Topo Ir em baixo

Re: Lógica de Programação (Algoritmos)

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum