Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante   Click to listen highlighted text! Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante

Linguagem de Programação II C – AULA 01

 

📚 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.

Fundamentos de Algoritmos e Programação

🔹 Conceitos Fundamentais

  1. 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).
  2. 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.

O que é um Algoritmo?

📖 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:

  1. Receita de Bolo 🍰

    • Entrada: Ingredientes (farinha, ovos, leite, fermento).
    • Passos:
      1. Misturar os ingredientes secos.
      2. Adicionar os ovos e o leite.
      3. Mexer até formar uma massa homogênea.
      4. Assar por 30 minutos a 180°C.
    • Saída: Um bolo pronto para consumo.
  2. Manual de Montagem de um Móvel 🛠️

    • Entrada: Peças do móvel.
    • Passos:
      1. Separar todas as peças e parafusos.
      2. Fixar as bases laterais na estrutura principal.
      3. Parafusar as prateleiras conforme o esquema.
    • Saída: Um móvel montado.
  3. Verificação de Senha no Celular 📱

    • Entrada: Usuário digita uma senha.
    • Passos:
      1. Comparar com a senha armazenada.
      2. Se a senha for igual, desbloquear o telefone.
      3. 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 do while.


2️⃣ Clareza e Definição Precisa

A importância da clareza: como ela pode levar o seu negócio e carreira ao  sucesso | Aline Cavalcanti

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 >=, pois 7 já é suficiente para aprovação.


3️⃣ Entrada e Saída Bem Definidas

Entrada e saída

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

Relógio e gráfico crescente A produtividade do fluxo de trabalho aumenta a  eficiência da otimização do desempenho do trabalho | Vetor Premium

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

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

Fluxograma

 


📌 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

Code::Blocks - NamuWiki

  1. 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
      
  2. Instalação do Code::Blocks

📖 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


📢 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


 

Click to listen highlighted text!