← Aulas

Conceitos Básicos

Arquitetura Computacional Básica, Algoritmos e Implementação, Desenvolvimento de Programas e Primeiros Passos em C.

Disciplina:Introdução à Programação em C (EET126) Público-alvo:Licenciatura em Eng. Electrónica e Telecomunicações Carga Horária:3 horas Docente:Isac Osvaldo de Venâncio Daniel

Conteúdo Programático

02

1 · Arquitetura Computacional

  • O que é um computador?
  • Componentes básicos
  • Sistemas: propósito geral vs embarcados
  • Von Neumann vs Harvard

2 · Algoritmos

  • Definição e características
  • Pseudocódigo
  • Fluxogramas

3 · Desenvolvimento

  • Ciclo de vida do software
  • Da ideia ao programa

4 · Primeiros Passos em C

  • Estrutura básica
  • Exemplos práticos

O que é um Computador?

03

Um computador é uma máquina electrónica capaz de:

Receber
(entrada)
→
Processar
(dados)
→
Armazenar
(resultados)

...seguindo um conjunto de instruções — um programa.

💡
O que torna um computador poderoso não é apenas o hardware, mas a capacidade de ser programado para diferentes tarefas.

Componentes de um Sistema

04

🧠 CPU

Unidade Central de Processamento:

  • ULA — operações aritméticas e lógicas
  • Controlo — coordenação

💾 Memória

  • RAM — temporária
  • ROM / Flash — permanente

🔌 I/O

  • Entrada: teclado, sensores
  • Saída: monitor, LED
🔗
Os componentes comunicam através de barramentos: dados, endereços e controlo.

Propósito Geral vs. Embarcados

05

🖥️ Propósito Geral

  • Executam diferentes tipos de programas
  • O utilizador pode instalar novos softwares
  • Exemplos: PCs, smartphones, tablets

🔧 Embarcados

  • Função específica
  • Software fixo e não alterável
  • Recursos limitados (RAM, processamento)
  • Exemplos: micro-ondas, automóveis, TVs
📖
Fonte: Programação de Sistemas Embarcados (Almeida et al., p. 5)

Von Neumann vs. Harvard

06

Von Neumann (Barramento Único)

  • Dados e programa na mesma memória
  • Mais flexível
  • Gargalo de Von Neumann
  • Exemplos: PCs, ARM

Harvard (Barramentos Separados)

  • Memória de programa e de dados separadas
  • Mais rápida — busca simultânea
  • Exemplos: AVR, PIC
✅
O ATmega328P do Arduino UNO usa arquitectura Harvard — daí a eficiência em sistemas embarcados.

O que é um Algoritmo?

07

Definição: sequência finita de passos lógicos e organizados que descrevem como resolver um problema ou realizar uma tarefa.

Características

Finito

Número definido de passos.

Definido

Cada passo é claro e inequívoco.

Entrada

Pode receber 0 ou mais dados.

Saída

Produz pelo menos um resultado.

Eficaz

Os passos são executáveis.

Algoritmo — Soma de Dois Números

08

Problema: calcular a soma de dois números.

Passo a passo

  1. Iniciar o programa
  2. Solicitar ao utilizador o primeiro número
  3. Ler e armazenar o primeiro número
  4. Solicitar ao utilizador o segundo número
  5. Ler e armazenar o segundo número
  6. Calcular a soma: resultado = num1 + num2
  7. Exibir o resultado ao utilizador
  8. Terminar o programa
❓
Porque é importante descrever o problema antes de programar?

Pseudocódigo

09
ALGORITMO SomarDoisNumeros
VARIAVEIS:
    numero1, numero2, resultado: INTEIRO

INICIO
    // Passo 1: Ler os dois números
    ESCREVER "Digite o primeiro número: "
    LER numero1
    ESCREVER "Digite o segundo número: "
    LER numero2

    // Passo 2: Calcular a soma
    resultado = numero1 + numero2

    // Passo 3: Mostrar o resultado
    ESCREVER "A soma é: ", resultado
FIM
✅
Vantagem: independente de linguagem de programação — foco na lógica, não na sintaxe.

Pseudocódigo — Par ou Ímpar

10
ALGORITMO VerificarPar
VARIAVEIS:
    numero: INTEIRO

INICIO
    ESCREVER "Digite um número: "
    LER numero

    SE (numero % 2 == 0) ENTAO
        ESCREVER "O número é PAR"
    SENAO
        ESCREVER "O número é ÍMPAR"
    FIM_SE
FIM
💡
O operador % (módulo) retorna o resto da divisão. Se o resto da divisão por 2 for 0, o número é par.

Fluxograma — Símbolos Básicos

11
SímboloNomeFunção
⬭Início/FimInício ou fim do algoritmo
▱Entrada/SaídaLeitura de dados ou exibição de resultados
▭ProcessamentoExecução de uma operação ou cálculo
◇DecisãoAvaliação de uma condição (V/F)
→FluxoDirecção do fluxo

Fluxograma — Soma de Dois Números

12
INÍCIO
↓
Ler numero1
↓
Ler numero2
↓
resultado = num1 + num2
↓
Exibir resultado
↓
FIM

Fluxograma — Verificar Par

13
INÍCIO
↓
Ler numero
↓
num % 2 == 0?
↓

SIM

"É PAR"

NÃO

"É ÍMPAR"
↓
FIM

Ciclo de Vida do Software

14

1 · Análise

Requisitos, compreender o problema.

2 · Projecto

Arquitectura, algoritmos, estruturas.

3 · Implementação

Código em C ou outra linguagem.

4 · Testes

Depuração, verificação de erros.

5 · Implantação

Instalação e configuração.

6 · Manutenção

Correcção e evolução.

🎯
Principais fases: Análise → Projecto → Código → Testes

Da Ideia ao Programa em C

15
Problema do mundo real
"Quero calcular a soma de dois números"
↓
Algoritmo (Pseudocódigo)
1. Ler num1 e num2
2. soma = num1 + num2
3. Exibir soma
↓
Código Fonte em C
↓
Programa Executável (Binário)

Exemplo — Soma de Dois Números

16
#include <stdio.h>

int main() {
    int numero1, numero2, resultado;

    printf("Digite o primeiro número: ");
    scanf("%d", &numero1);

    printf("Digite o segundo número: ");
    scanf("%d", &numero2);

    resultado = numero1 + numero2;

    printf("A soma é: %d\n", resultado);
    return 0;
}
💡
scanf("%d", &var) — o & é obrigatório para tipos primitivos; passa o endereço da variável.

Exemplo — Verificar Par

17
#include <stdio.h>

int main() {
    int numero;

    printf("Digite um número: ");
    scanf("%d", &numero);

    if (numero % 2 == 0) {
        printf("O número é PAR\n");
    } else {
        printf("O número é ÍMPAR\n");
    }
    return 0;
}
📌
if (condição): estrutura de decisão · %: operador módulo · ==: operador de comparação.

Exercícios de Fixação

18

1 · Arquitectura (V/F)

  • ( ) A CPU armazena programas de forma permanente
  • ( ) A RAM mantém dados ao desligar
  • ( ) O barramento de endereços define o espaço de endereçamento
  • ( ) A ULA executa operações aritméticas e lógicas
  • ( ) Teclado e monitor são dispositivos de I/O

2 · Pseudocódigo

Escreve um pseudocódigo para calcular a média aritmética de três números.

3 · Fluxograma

Desenha um fluxograma que lê dois números e exibe o maior deles.

4 · Implementação em C

Traduz o pseudocódigo do Exercício 2 para linguagem C. Usa float para decimais.

Síntese da Aula

19
TópicoConceitos-Chave
ArquitecturaCPU, memória, I/O, barramentos
Tipos de sistemasPropósito geral vs. embarcados
Von Neumann / HarvardBarramento único vs. separado
AlgoritmoFinito, definido, entrada, saída, eficaz
RepresentaçãoPseudocódigo e fluxogramas
Ciclo de vidaAnálise → Projecto → Código → Testes
CEstrutura básica: #include, main(), scanf, printf
➡️
Próxima aula: Elementos da Linguagem C

Leitura Recomendada

20

📖 Livro Base

ALMEIDA, Rodrigo M. A.; MORAES, Carlos H. V.; SERAPHIM, Thatyana F. P.
Programação de Sistemas Embarcados, Elsevier, 2016.

Capítulos

  • Cap. 1 — Introdução: sistemas embarcados, hardware, ambiente
  • Cap. 12 — Introdução a microcontroladores
  • Cap. 2 — Sistemas de numeração (decimal, binário, hexadecimal)

Fim da Aula

"A programação não é sobre o que sabes, é sobre o que consegues descobrir."

Próxima aula:Conceitos Básicos 2 — Estrutura e IDEs Prática:Exercícios 1 a 4
← Voltar à lista de aulas