📚 Introdução à Programação e Algoritmos em C
🎯 Objetivo:
Apresentar os fundamentos da programação, a estruturação de algoritmos, o ambiente de desenvolvimento e os primeiros passos na linguagem C.
📌 1. Fundamentos de Algoritmos e Programação
A programação é a arte de instruir um computador a resolver problemas por meio de algoritmos. Desde operações simples, como a soma de dois números, até sistemas complexos, como redes neurais e inteligência artificial, tudo se baseia em algoritmos bem definidos.

🔹 Conceitos Fundamentais
-
Definição de Algoritmo
- Um conjunto ordenado de passos que resolve um problema computacional.
- Exemplo: Receita de bolo (passo a passo para obter um resultado).
-
Características de um Bom Algoritmo
- Finitude: Deve ter um número limitado de passos.
- Definição: Cada passo deve ser bem especificado.
- Entrada e Saída: Deve processar dados de entrada e gerar uma saída.
- Eficiência: Deve ser otimizado para evitar desperdício de tempo e recursos.
🔹 O que é um Algoritmo?
Um algoritmo é um conjunto de instruções ordenadas e bem definidas que resolvem um problema específico. Ele deve levar de uma entrada inicial até uma saída desejada, seguindo uma sequência lógica.

📖 Definição Formal de Algoritmo
Um algoritmo pode ser definido como:
“Um conjunto finito de regras e operações que, quando seguidas, resolvem um problema específico em um número finito de passos.”
Esse conceito foi formalizado na década de 1930 por Alan Turing, um dos pais da computação moderna, e refinado posteriormente por matemáticos como Alonzo Church e John von Neumann.
🔹 Exemplos de Algoritmos no Cotidiano
A lógica dos algoritmos está presente no nosso dia a dia, mesmo sem percebermos. Aqui estão alguns exemplos práticos:
-
Receita de Bolo 🍰
- Entrada: Ingredientes (farinha, ovos, leite, fermento).
- Passos:
- Misturar os ingredientes secos.
- Adicionar os ovos e o leite.
- Mexer até formar uma massa homogênea.
- Assar por 30 minutos a 180°C.
- Saída: Um bolo pronto para consumo.
-
Manual de Montagem de um Móvel 🛠️
- Entrada: Peças do móvel.
- Passos:
- Separar todas as peças e parafusos.
- Fixar as bases laterais na estrutura principal.
- Parafusar as prateleiras conforme o esquema.
- Saída: Um móvel montado.
-
Verificação de Senha no Celular 📱
- Entrada: Usuário digita uma senha.
- Passos:
- Comparar com a senha armazenada.
- Se a senha for igual, desbloquear o telefone.
- Se for errada, mostrar mensagem de erro e reduzir tentativas.
- Saída: Celular desbloqueado ou tentativa rejeitada.
✅ Conclusão: Esses processos seguem passos lógicos e finitos, o que caracteriza um algoritmo.
🔹 Características de um Bom Algoritmo
Para ser eficiente e útil, um algoritmo deve obedecer a alguns critérios fundamentais:
1️⃣ Finitude
O algoritmo deve terminar em um número finito de passos. Um algoritmo que entra em loop infinito nunca resolve o problema.
✅ Exemplo Correto:
int i = 0;
while (i < 10) {
printf("%d ", i);
i++;
}
🔴 Exemplo de Erro: Loop Infinito
int i = 0;
while (i < 10) { // i nunca é atualizado
printf("%d ", i);
}
Correção: Deve-se incluir
i++
dentro dowhile
.
2️⃣ Clareza e Definição Precisa
Cada instrução do algoritmo deve ser bem definida e compreensível.
✅ Exemplo Correto:
if (nota >= 7) {
printf("Aprovado");
} else {
printf("Reprovado");
}
🔴 Exemplo de Erro:
if (nota > 7) {
printf("Aprovado");
}
Correção: O operador correto seria
>=
, pois7
já é suficiente para aprovação.
3️⃣ Entrada e Saída Bem Definidas
Um algoritmo deve:
✔️ Receber entradas (dados iniciais).
✔️ Processar as informações.
✔️ Gerar uma saída válida.
✅ Exemplo: Somar dois números em C
#include <stdio.h>
int main() {
int num1, num2, soma;
printf("Digite dois números: ");
scanf("%d %d", &num1, &num2);
soma = num1 + num2;
printf("A soma é: %d\n", soma);
return 0;
}
- Entrada: O usuário fornece dois números.
- Processamento: O programa calcula a soma.
- Saída: Exibição do resultado.
4️⃣ Eficiência e Otimização
O algoritmo deve evitar desperdício de tempo e recursos computacionais.
🔴 Exemplo Ineficiente:
int soma = 0;
for (int i = 1; i <= 100; i++) {
soma += i;
}
✅ Exemplo Otimizado:
int soma = (100 * 101) / 2; // Fórmula de Gauss
Conclusão: A segunda solução é muito mais eficiente, pois evita um laço desnecessário.
🔹 Representação de Algoritmos
📌 1. Fluxogramas
Fluxogramas são representações gráficas do algoritmo.
Exemplo de um fluxograma para somar dois números:
📌 Ferramenta Online: https://www.diagrams.net/
Inicio
|
v
[Ler num1, num2]
|
v
[soma = num1 + num2]
|
v
[Exibir soma]
|
v
Fim
✅ Vantagem: Torna a lógica do algoritmo mais visual e compreensível.
📌 2. Pseudocódigo
Forma textual e padronizada de representar algoritmos antes de programar.
Exemplo:
INICIO
Escreva "Digite dois números:"
Leia num1, num2
soma ← num1 + num2
Escreva "A soma é:", soma
FIM
✅ Vantagem: Facilita o entendimento do código antes da implementação real.
📌 Conclusão
- Algoritmos são a base da programação.
- Devem ser claros, finitos e eficientes.
- A representação gráfica e textual ajuda a organizar a lógica.
- Um bom programador sempre busca otimizar seu código.
📌 2. Estruturação de Programas: Fluxogramas, Pseudocódigo e Linguagens de Programação
Os algoritmos podem ser representados de diferentes formas antes de serem codificados em uma linguagem de programação.
🔹 Fluxogramas
- Representação gráfica do fluxo de um programa.
- Utiliza símbolos padronizados, como:
- 🔹 Elipse: Indica início e fim.
- 🔹 Paralelogramo: Entrada e saída de dados.
- 🔹 Retângulo: Processamento (cálculos e ações).
- 🔹 Losango: Decisão (condições IF/ELSE).
🔹 Fluxogramas figuras

Exemplo de um fluxograma simples para somar dois números:
📌 Ferramenta para Criar Fluxogramas – Draw.io
🔹 Pseudocódigo
- Linguagem intermediária entre a linguagem natural e a programação.
- Exemplo de pseudocódigo para somar dois números:
INICIO Escreva "Digite dois números:" Leia num1, num2 soma ← num1 + num2 Escreva "A soma é:", soma FIM
🔹 Fluxograma do código anterior

📌 3. Ambiente de Desenvolvimento: Instalação e Configuração do GCC e Code::Blocks/Dev-C++
🔹 Escolha do Ambiente de Desenvolvimento
A linguagem C pode ser programada utilizando diferentes IDEs (Ambientes de Desenvolvimento Integrados). Entre as mais populares:
- GCC (GNU Compiler Collection): Compilador padrão do Linux e utilizado no Windows via MinGW.
- Code::Blocks: IDE gráfica leve e prática.
- Dev-C++: Alternativa clássica para Windows.
🔹 Instalação do GCC e Code::Blocks
-
Instalação do GCC (Windows/Linux/MacOS)
- Windows: Baixar MinGW no site https://www.mingw-w64.org/
- Linux: Instalar via terminal:
sudo apt update sudo apt install gcc
- MacOS: Usar Homebrew:
brew install gcc
-
Instalação do Code::Blocks
- Baixar em https://www.codeblocks.org/downloads/
- Escolher a versão com MinGW embutido.
📖 Referências
📌 4. Primeiro Programa em C: Estrutura Básica (Hello World)
O primeiro programa em C geralmente imprime uma mensagem na tela.
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
📌 Explicação:
#include <stdio.h>
→ Biblioteca padrão para entrada e saída.int main()
→ Função principal do programa.printf("Hello, World!\n");
→ Comando que exibe a mensagem.return 0;
→ Indica que o programa terminou com sucesso.
📌 5. Conceito de Variáveis e Tipos de Dados
Variáveis armazenam informações durante a execução do programa.
🔹 Tipos de Dados em C
Tipo | Tamanho | Exemplo |
int |
4 bytes | 10 |
float |
4 bytes | 3.14 |
double |
8 bytes | 3.14159 |
char |
1 byte | ‘A’ |
🔹 Exemplo de Uso
#include <stdio.h>
int main() {
int idade = 25;
float altura = 1.75;
char inicial = 'A';
printf("Idade: %d anos\n", idade);
printf("Altura: %.2f metros\n", altura);
printf("Inicial do nome: %c\n", inicial);
return 0;
}
📖 Referências
- Livro: “C: How to Program” – Paul Deitel, Harvey Deitel.
- Curso Gratuito: C Programming – Harvard CS50
- Livro: “Algoritmos e Programação: Teoria e Prática” – Rodrigo César, Marco Medina e Cristina Fertig. Capítulo 1 e 2.
- Simulador de Fluxogramas: https://www.draw.io/
- Guia Completo: Documentação Oficial do GCC
- Curso Gratuito: Programação em C – Pietro Martins de Oliveira
- Livro: “The C Programming Language” – Brian W. Kernighan, Dennis M. Ritchie.
- Curso Gratuito: C Programming for Beginners – freeCodeCamp
📢 Conclusão
Ao final desta aula, o aluno terá compreendido:
✅ O que são algoritmos e sua importância na programação.
✅ Como representar algoritmos usando fluxogramas e pseudocódigo.
✅ Como configurar o ambiente de desenvolvimento em C.
✅ Como escrever e executar o primeiro programa em C.
✅ Como declarar e utilizar variáveis na linguagem C.
🔗 Recursos Adicionais