Motivação
A capacidade de pensar de maneira lógica é um dos principais diferenciais para saber como resolver problemas, principalmente na área da computação. Diretamente relacionado a isso, compreender o conceito de algoritmo também é algo fundamental. Com isso em mente, caso seu objetivo seja se tornar um bom programador, o próximo passo é aprender um pseudocódigo (Portugol, por exemplo), no qual você entrará em contato com detalhes como entrada e saída de dados, assim como o processamento propriamente dito. Nesse artigo, veremos um pouco sobre esses conceitos, fundamentais para quem está começando a programar.
Saiba mais sobre programação em: Programação: pode onde começar?
Lógica de programação: o algoritmo
A lógica de programação é a capacidade que todo programador precisa ter para resolver os problemas que aparecem no dia-a-dia. A capacidade de dividir o problema em partes menores é uma etapa essencial da lógica de programação e precisa ser levada em consideração quando nos deparamos com qualquer exercício/desafio. É nesse ponto que entra o conceito de algoritmo, descrito, geralmente, como uma sequência lógica de ações capaz de resolver um problema.
É válido ressaltar, no entanto, que o conceito de algoritmo vai muito além da programação. Uma receita de bolo, por exemplo, é um exemplo simples de algoritmo. Até mesmo algo como “mascar um chiclete” pode ser descrito como um algoritmo, como mostrado na Código 1.
– pegar o chiclete
– retirar o papel
– mascar o chiclete
– jogar o papel no lixo
– jogar o chiclete no lixo
A maioria dos algoritmos, obviamente, será mais complexa do que simplesmente “mascar um chiclete” ou “fazer um bolo”. No caso da computação, uma soma de dois números é o exemplo mais clássico de um algoritmo simples. Algo como o mostrado na Código 2 é bastante comum para observarmos que temos uma sequência lógica de ações que envolvem os três elementos que comentamos anteriormente: entrada de dados, processamento e saída de dados.
– Inserir o primeiro número
– Inserir o segundo número
– Somar os dois valores
– Mostrar o resultado
- Ações 1 e 2: entrada de dados;
- Ação 3: processamento das informações inseridas;
- Ação 4: saída de dados.
Introdução ao pseudocódigo
A representação de algoritmos pode ser feita de várias formas; a que mostramos na Código 2 é uma delas. Entretanto, essa opção não possui nenhum tipo de regra mais formal, o que faz com que esteja um pouco distante da programação propriamente dita. Para aproximar um pouco mais os dois conceitos, o pseudocódigo foi criado (um dos exemplos de pseudocódigo mais conhecidos no Brasil é o Portugol). Além dele, podemos encontrar várias opções. O objetivo de todos, no entanto, é um só: criar um código que se aproxime do que será visto em linguagens de programação como C, C# ou Java.
Utilizando o Portugol como exemplo, nosso algoritmo da soma de dois números seria algo como o mostrado na Código 3. Nessa “linguagem de programação”, é importante observar que temos um outro conceito, conhecido como regiões; nesse código, temos uma região de variáveis e outra de processamento. Esse conceito também é algo que será levado para as linguagens de programação e sempre deve ser considerado durante o desenvolvimento de software.
início
inteiro a, b, resultado
ler (a)
ler (b)
resultado <- a + b
escrever (resultado)
fim
Linha 01: Indicação do início do algoritmo em Portugol;
Linha 02: Região de definição de variáveis. As variáveis inteiras “a” e “b” são utilizadas para guardar os valores inseridos pelo usuário, enquanto o “resultado”, como o nome sugere, irá receber a soma deles;
Linhas 04 e 05: Lê os valores inseridos pelo usuário e os guarda em “a” e “b”. Note que, no Portugol, as ações são sempre definidas por verbos no infinitivo. Ler serve para indicar a leitura de informações do usuário (entrada de dados), e Escrever, para mostrar o resultado final para o mesmo (saída de dados);
Linha 06: Utilizamos o operador de atribuição <-. Esse operador atribui a soma de “a” e “b” à variável “resultado”. Essa é a fase de processamento dos dados de entrada;
Linha 07: Para finalizar o algoritmo, temos a amostragem dos dados para o usuário. Nesse caso, utilizamos o verbo Escrever para mostrar essa ação;
Linha 08: Indicação do fim do algoritmo em Portugol.
Com isso, podemos observar que o Portugol possui regras simples e bastante flexíveis. Ao começar a programar com Java ou C#, por exemplo, você irá notar que a proposta de se aproximar de linguagens como elas é obedecida. Se compararmos o código da Código 3 com um em C#, por exemplo, notaremos que não existe uma grande diferença. É claro que as ações (ler e escrever) e os operadores (atribuição e operador aritmético “+”) serão substituídos por seus respectivos na linguagem, mas a estrutura será semelhante à apresentada no exemplo.
Primeiros Passos com Algoritmos e Pseudocódigo
O aprendizado de algoritmos é um passo fundamental para torna se um programador, abaixo temos algumas dicas que poderão auxiliar no processo de aprendizado:
1. Comece pelo simples
Não tente entender tudo de uma vez, pois muita informação de uma só vez poderá ter um impacto de desgaste e dificuldade para assimilação. Avance aos poucos, por exemplo comece com problemas mais simples e pouco a pouco aumente o nível de complexidade para ganhar segurança e confiança.
2. Pense como um solucionador de problemas
Antes de pensar em código, como um programador, entenda o problema e como poderá solucionar este problema. Por exemplo:
- Quais são as entradas de problema?
- O que precisa ser feito?
- Qual deve ser a saída?
3. Escreva em linguagem natural
Antes de iniciar com pseudocódigo descreva o problema como se estivesse explicando para outra pessoa, de forma simples e direta. Isso ajuda a organizar as ideias e o que precisa ser feito para converter para código.
4. Use papel e caneta
Muitas vezes pode ser considerado algo simples, mas esboçar as ideias como o fluxo de um algoritmo ajuda num entendimento preliminar do problema e como poderá iniciá-lo do que ir codificando enquanto pensa sobre.
5. Erros fazem parte do processo
Não desanime se algo não funcionou como esperado, entenda que é normal acontecer e faz parte do processo. O importante é entender o que aconteceu, pois a cada erro é uma chance de aprendizado.
6. Troca de informações
Explicar para um colega os seus conhecimentos ou auxiliar em dúvidas do que já aprendeu fortalecerá ainda mais seus conhecimentos, aprimorando assim suas habilidades.
7. Seja paciente
Ter o entendimento que o processo de aprendizagem leva tempo, assim como varia de pessoa a pessoa, então seja paciente consigo mesmo, pois isso ajudará a cobrança interna e permitirá um melhor aproveitamento no seu momento de estudo.
Como utilizar uma IA no aprendizado de algoritmos
Uma IA pode ser uma ferramenta poderosa para auxiliar no aprendizado de algoritmos. Aqui estão algumas maneiras de como você pode usar uma IA para melhorar sua compreensão e habilidades em algoritmos:
1. Explicações passo a passo
É possível solicitar uma IA que explique o que um determinado algoritmo faz, por exemplo em linha por linha e obter melhor entendimento.
2. Correção e melhorias
Solicita que sejam feitas correções do código criado ou melhorias a serem feitas. Essas práticas ajudarão numa nova visão do código feito e possibilidades de ajustes caso sejam possíveis.
3. Criação de desafios personalizados
Uma maneira de aprimorar suas habilidades praticando é solicitar a IA que gere desafios práticos com base no seu conhecimento, assim poderá treinar e aprimorar suas habilidades.
4. Explicação de erros
Caso não tenha o entendimento de determinado erro obtido no seu código, poderá solicitar que seja explicado o motivo e possível solução.
5. Tradução entre linguagens
Outra prática de utilização da IA é a conversão do código para outra linguagem, onde poderá converter um pseudo código para uma linguagem de programação e visualizar o resultado para implementação.
O aprendizado de algoritmos é uma jornada que desenvolve o raciocínio lógico, a Inteligência Artificial surge como uma aliada poderosa nesse caminho. Ao unir a curiosidade do estudante com o suporte inteligente da IA, o aprendizado se torna mais dinâmico, eficiente e envolvente.
Links Úteis
- Como NÃO escrever código:
Programar não é apenas escrever código que funcione. É importante escrever códigos legíveis, organizados e eficientes. - Bean Validation: Validação de dados em Java:
Neste curso você aprenderá a implementar validação com Bean Validation.
Saiba mais sobre Lógica de Programação ;)
- Programação: O que é Algoritmo?:
Nesse DevCast você vai aprender o que é algoritmo de uma forma leve e divertida. E ainda veremos como criar um primeiro algoritmo usando pseudocódigo. - Programação: O que é uma variável?:
Neste DevCast conversamos sobre o que é uma variável e qual o seu papel, permitindo assim que você crie o seu primeiro programa: um aplicativo que recebe um nome e imprime na tela uma mensagem de boas vindas.