Definição
A programação de computadores tem como base a construção de algoritmos.
Um algoritmo é uma maneira específica de resolver um problema. Consiste em um conjunto de ações logicamente ordenadas, que podem ser realizadas em um intervalo de tempo considerado aceitável e finito, com o objetivo de consumir a menor quantidade de recursos possível.
Utilizamos algoritmos diariamente, muitas vezes sem perceber, buscando sempre soluções com ações que demandem o menor esforço e utilizem poucos recursos materiais, humanos ou financeiros.
Aqui estão alguns exemplos de algoritmos:
🔴 “Tomar banho”:
1 2 3 4 5 6 7 8 |
Entrar no banheiro. Tirar a roupa. Abrir o registro. Ensaboar-se. Enxaguar o corpo. Passar shampoo nos cabelos. Enxaguar o cabelo. Fechar o registro. |
🔴 “Trocar pneu”:
1 2 3 4 5 6 7 8 9 10 |
Pegar o macaco. Colocar o macaco embaixo do carro. Levantar o carro. Pegar a chave de roda. Desparafusar a roda. Retirar a roda. Colocar o estepe. Reparafusar o pneu. Abaixar o carro. Tirar o macaco. |
🔴 “Calcular média”:
1 2 3 4 5 |
Receber a primeira nota da disciplina. Receber a segunda nota da disciplina. Somar as duas notas e dividir o resultado por 2. Se a média for maior ou igual a 7, exibir "Aprovado!". Senão, exibir "Reprovado!". |
Estruturas Básicas
🔴 Na execução de um algoritmo, a ordem em que as tarefas são realizadas é importante. Por exemplo, não podemos bater os ovos antes de quebrá-los dentro da batedeira, nem tomar banho sem antes tirar a roupa.
A sequência de instruções executadas é crucial para o sucesso do nosso algoritmo.
🔴 Além disso, ao executarmos o algoritmo “correr ao redor da praça”, precisamos determinar previamente a quantidade de voltas que daremos, ou seja, quantas vezes repetiremos a tarefa de contornar a praça correndo, até atingir o limite desejado.
🔴 Em nosso cotidiano, também precisamos tomar decisões sobre o que fazer. Por exemplo, se estiver chovendo, levaremos uma capa de chuva, ou se a rua estiver vazia, atravessaremos.
Tomar decisões adequadas pode determinar o sucesso ou o fracasso de nossos algoritmos.
Diante disso, é importante destacar que os algoritmos possuem três estruturas fundamentais:
-
- Estruturas Sequenciais: determinam a ordem em que as instruções são executadas.
- Estruturas de Repetição: uma ou mais instruções são executadas enquanto uma determinada condição é satisfeita.
- Estruturas de Decisão: uma ou mais instruções são executadas se uma determinada condição é satisfeita.
Dominar essas estruturas é essencial para escrever bons algoritmos.
📢 Não se preocupe em compreendê-las de imediato, pois dedicaremos atenção especial a cada uma delas. Por enquanto, saiba que elas existem e são fundamentais na construção de algoritmos.
Representação
Assim como em qualquer aspecto da vida humana, precisamos expressar nossas “ideias algorítmicas” e colocá-las no papel.
Um algoritmo pode ser expresso de várias formas:
-
- Por meio de diagramas e símbolos especiais.
- Por meio de linguagem natural, como no exemplo de uma receita de bolo.
- Por meio de linguagem estruturada, como o “portugol“, criada especialmente para expressar algoritmos em português.
✍️ Vamos usar um exemplo para ilustrar:
Escrever um algoritmo que calcule a média e determine a situação de um determinado aluno.
🔴 Usando linguagem corrente:
1 2 3 4 5 |
Receba a primeira nota da disciplina. Receba a segunda nota da disciplina. Some as duas notas e divida o resultado por 2. Se a média for maior ou igual a 7, exiba "Aprovado!". Senão, exiba "Reprovado!". |
🔴 Podemos representar o mesmo algoritmo por meio de um diagrama:
🔴 ou usando uma linguagem estruturada (como o “portugol”)…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
algoritmo "calcular_media" var nota1, nota2, media: real inicio leia(nota1) leia(nota2) media <- (nota1 + nota2) / 2 se (media >= 7) entao escreva("APROVADO") senao escreva("REPROVADO") fimse fimalgoritmo |
🔴 ou uma linguagem de programação, como a linguagem C.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <stdio.h> int main() { float nota1, nota2, media; printf("Digite a primeira nota: "); scanf("%f", ¬a1); printf("Digite a segunda nota: "); scanf("%f", ¬a2); media = (nota1 + nota2) / 2; if (media >= 7) { printf("APROVADO\n"); } else { printf("REPROVADO\n"); } return 0; } |
📢 Alternaremos entre essas representações ao longo do aprendizado. No entanto, nosso foco principal será o desenvolvimento de algoritmos usando o “portugol” estruturado do VisuAlg, que será explicado detalhadamente nas próximas lições.
Algumas considerações iniciais…
É importante ressaltar que o aprendizado de programação de computadores não acontece da noite para o dia, como por mágica.
Inicialmente, estudaremos os princípios e estruturas fundamentais da lógica de programação e, em seguida, aplicaremos esses conceitos para solucionar problemas por meio do desenvolvimento de algoritmos.
📢 O estudante deve ter disciplina e um genuíno desejo de aprender. Os primeiros passos podem ser desafiadores e exigem perseverança, além de muita prática.
⚠️ Pense em si mesmo como um atleta que precisa treinar intensamente para alcançar suas metas!
A programação se aprende programando!
📚 Livros
-
- CORMEN, Thomas H. et al. Algoritmos: Teoria e Prática. 3. ed. Rio de Janeiro: Elsevier, 2012. <https://amzn.to/3K0atrU>
- WIRTH, Niklaus. Algoritmos e Estruturas de Dados. 1. ed. São Paulo: Pearson, 2007. <https://amzn.to/3pTtIg0>
- FEOFILOFF, Paulo. Algoritmos: Projeto e Análise. 3. ed. Rio de Janeiro: LTC, 2016. <https://amzn.to/3DkhFve>
—
🗨️ Sinta-se à vontade para entrar em contato comigo caso surjam dúvidas, críticas ou sugestões.
*Atualizado em 5 de maio de 2024
Obrigada
Obrigado Professor Helio pela iniciativa.
Valeu, Gerson!
Boa introdução!
Ansioso para aprender a programar programando.
Valeu, Janes!
Minha intenção é fazer algo diferenciado, que agregue valor.
Espero que ao final desse curso a galera tenha criado algo útil.
Abraço.
(y)
Prof, será usado o VisuAlG, mas caso que aprender, a parte, na linguagem C, será compatível o ensino?
Será sim, amigo!