[Piquete] Introdução ao C++

  Caderno de TI

Introdução ao C++

Do básico à preparação para o Arduino · Ensino Médio Técnico em Desenvolvimento de Sistemas

Técnico em DS ~100 min · 2 aulas C++ / Arduino 12 seções

Introdução ao C++

01

O que é C++?

C++ é uma linguagem de programação de propósito geral criada por Bjarne Stroustrup em 1979, como extensão da linguagem C. É compilada — o código que você escreve é traduzido para a linguagem da máquina antes de executar, o que a torna extremamente rápida e eficiente.

Curiosidade: O nome "C++" é uma brincadeira com o operador de incremento da linguagem C (o ++), simbolizando que C++ é um "C melhorado"!

Linguagem Compilada vs Interpretada

Para entender C++, é fundamental saber que existem dois grandes modelos de execução de linguagens de programação: compiladas e interpretadas. Cada uma tem características próprias que definem onde e como são usadas.

Linguagem Compilada

  • O código-fonte é traduzido inteiramente para código de máquina antes da execução
  • O processo de tradução é feito por um programa chamado compilador
  • Gera um arquivo executável independente (.exe, binário)
  • Execução muito mais rápida — a tradução já foi feita
  • Erros de sintaxe são detectados antes de rodar o programa
C++ C Rust Go Pascal

Linguagem Interpretada

  • O código-fonte é traduzido e executado linha por linha em tempo real
  • A tradução é feita por um programa chamado interpretador
  • Não gera executável — precisa do interpretador instalado
  • Execução mais lenta — traduz enquanto executa
  • Facilita testes rápidos e desenvolvimento ágil
Python JavaScript PHP Ruby VisuAlg

Analogia: A linguagem compilada é como traduzir um livro inteiro para o português antes de publicá-lo — a leitura depois é fluida e rápida. A interpretada é como ter um tradutor simultâneo ao lado: funciona, mas há uma pequena demora em cada frase.

O processo de compilação em C++
┌─────────────────────────────────────────────────────────────────┐
│                     FLUXO DE COMPILAÇÃO C++                     │
└─────────────────────────────────────────────────────────────────┘

  programa.cpp          ← você escreve aqui (código-fonte)
       │
       ▼
  Compilador (g++)      ← verifica erros e traduz tudo
       │
       ▼
  programa.exe          ← arquivo executável gerado
       │
       ▼
  Execução rápida       ← CPU roda diretamente, sem tradutor

  No Arduino: o IDE compila o .ino e grava o binário no chip!

Onde C++ é utilizado?

ÁreaExemplos do mundo real
🎮 Jogos digitaisUnreal Engine, Call of Duty, World of Warcraft
🖥️ Sistemas operacionaisPartes do Windows, Linux, macOS
🏦 Sistemas financeirosBolsa de valores, sistemas bancários
🚗 Sistemas embarcadosAutomóveis, robótica, IoT
🔬 Ciência e engenhariaSimulações, processamento de imagens
🤖 Arduino / EletrônicaMicrocontroladores, sensores, automação

Relação entre C++ e Arduino

Quando você programa um Arduino, está usando uma versão simplificada de C++! A linguagem do Arduino foi construída sobre C/C++, portanto tudo que você aprender aqui será aplicado diretamente em projetos com LEDs, sensores, motores e muito mais.

Conexão direta: Estruturas como if, for, funções e variáveis que você aprenderá aqui são exatamente as mesmas usadas no Arduino IDE!

Exercício de Fixação
  1. Cite 3 exemplos de produtos do cotidiano que provavelmente usam C++ no seu funcionamento.
  2. Por que uma linguagem compilada tende a ser mais rápida do que uma interpretada?
  3. O que você espera aprender em C++ que poderá aplicar em um projeto com Arduino?

Documentação Oficial e Ambientes Online

🔗

Antes de começar a programar, conheça os principais recursos online para consultar a linguagem e testar seus códigos sem precisar instalar nada no computador.

📚 Documentação Oficial

⚡ Sandboxes — Teste seu código online

Estes ambientes permitem escrever, compilar e executar código C++ direto no navegador, sem instalar nada. Perfeito para testar os exemplos desta aula!

Dica para a aula: Use o OnlineGDB para testar os exemplos desta apostila em tempo real. Basta copiar o código, colar no editor e clicar em Run. Sem instalação, sem configuração!

No futuro: Para projetos maiores e para programar o Arduino, você utilizará o VS Code com a extensão C/C++ ou o Arduino IDE — ambos gratuitos e instalados no laboratório.

Estrutura Básica de um Programa

02

Todo programa em C++ segue uma estrutura básica. Veja o clássico "Olá, Mundo!":

hello_mundo.cpp
#include <iostream>   // Inclui a biblioteca de entrada e saída

using namespace std;   // Permite usar cout e cin sem o prefixo "std::"

int main() {           // Função principal — todo programa começa aqui

    cout << "Olá, Mundo!" << endl;  // Exibe texto na tela + quebra de linha

    return 0;           // Indica que o programa terminou com sucesso
}

#include <iostream>

O #include é uma diretiva de pré-processamento. Ela diz ao compilador: "inclua o conteúdo desta biblioteca antes de compilar". A biblioteca <iostream> fornece as funções de entrada (cin) e saída (cout) de dados.

int main()

Esta é a função principal do programa. Todo programa em C++ precisa de uma main() — é a partir dela que a execução começa. O int antes indica que ela retorna um número inteiro ao sistema operacional.

cout e endl

O cout ("c-out") é responsável por exibir informações na tela. O operador << envia o conteúdo para a saída. O endl representa uma quebra de linha (equivalente a pressionar Enter).

return 0

Ao final da main(), o return 0 informa ao sistema que o programa terminou corretamente. Um valor diferente de 0 indicaria que houve algum erro.

Exemplo com múltiplas saídas
#include <iostream>
using namespace std;

int main() {
    cout << "Bem-vindo à aula de C++!" << endl;
    cout << "Hoje vamos aprender o básico." << endl;
    cout << "Vamos lá!" << endl;
    return 0;
}
Exercício de Fixação
  1. Escreva um programa que exiba seu nome, cidade e turma na tela, cada um em uma linha diferente.
  2. O que aconteceria se removêssemos o #include <iostream>? Por quê?
  3. Qual a diferença entre cout << "Olá" e cout << "Olá" << endl?

Variáveis e Tipos de Dados

03

Variáveis são espaços na memória onde guardamos informações temporariamente durante a execução do programa. Em C++, toda variável precisa ter um tipo definido.

Tipos Primitivos

TipoDescriçãoExemplo de valorTamanho
intNúmeros inteiros-5, 0, 42, 10004 bytes
floatDecimais (precisão simples)3.14, -0.54 bytes
doubleDecimais (dupla precisão)3.141592653588 bytes
charUm único caractere'A', 'z', '5'1 byte
boolVerdadeiro ou falsotrue, false1 byte
stringTexto (requer <string>)"Olá, mundo!"variável
variaveis.cpp
#include <iostream>
#include <string>       // Necessário para usar string
using namespace std;

int main() {
    // Declaração e atribuição de variáveis
    int    idade    = 17;              // Número inteiro
    float  altura   = 1.75;           // Decimal com menos precisão
    double saldo    = 1523.99;        // Decimal com mais precisão
    char   inicial  = 'A';            // Um único caractere — aspas simples!
    bool   aprovado = true;           // Verdadeiro ou falso
    string nome     = "Maria Silva";  // Texto — aspas duplas!

    // Exibindo os valores
    cout << "Nome: "     << nome     << endl;
    cout << "Idade: "    << idade    << endl;
    cout << "Altura: "   << altura   << " m"   << endl;
    cout << "Saldo: R$ " << saldo    << endl;
    cout << "Inicial: "  << inicial  << endl;
    cout << "Aprovado: " << aprovado << endl;  // Exibe 1 (true) ou 0 (false)

    return 0;
}

Atenção! char usa aspas simples 'A' e string usa aspas duplas "texto". Trocar um pelo outro causa erro de compilação!

Constantes com const

Quando um valor não deve mudar durante o programa, use a palavra-chave const:

constantes.cpp
const double PI         = 3.14159265;  // PI nunca mudará
const int    MAX_ALUNOS  = 40;           // Capacidade máxima da sala

// PI = 3.14;   ← ERRO! Não se pode alterar uma constante
Exercício de Fixação
  1. Declare variáveis para armazenar: nome do produto, preço, quantidade em estoque e se está disponível. Use os tipos corretos para cada uma.
  2. Qual a diferença prática entre float e double? Quando usar cada um?
  3. Por que usamos const? Dê um exemplo prático de uso em um sistema escolar.
  4. O que acontece ao exibir um bool com cout? Como exibir "Verdadeiro" ou "Falso" em vez de 1 ou 0?

Entrada e Saída de Dados

04

Um programa útil precisa receber dados do usuário e mostrar resultados. Em C++, usamos cin para entrada e cout para saída.

cout — Saída de dados

Variações do cout
cout << "Texto simples" << endl;         // Texto + quebra de linha
cout << "Nota: " << nota << endl;       // Texto concatenado com variável
cout << "A + B = " << (a + b) << endl;   // Texto + expressão calculada
cout << "\n";                           // Quebra de linha alternativa

cin — Entrada de dados

cadastro.cpp
#include <iostream>
#include <string>
using namespace std;

int main() {
    string nome;
    int    idade;
    float  nota;

    cout << "Digite seu nome: ";
    getline(cin, nome);     // Lê a linha inteira (incluindo espaços)

    cout << "Digite sua idade: ";
    cin >> idade;            // Lê até encontrar espaço ou Enter

    cout << "Digite sua nota: ";
    cin >> nota;

    cout << "\n--- Dados cadastrados ---" << endl;
    cout << "Nome: "  << nome  << endl;
    cout << "Idade: " << idade << endl;
    cout << "Nota: "  << nota  << endl;

    return 0;
}

cin vs getline: Use cin >> para ler uma palavra ou número. Use getline(cin, variavel) para ler frases completas com espaços.

Exercício de Fixação
  1. Crie um programa que pergunte o nome e a idade e exiba: "Olá, [nome]! Você tem [idade] anos."
  2. Leia dois números e exiba a soma, a diferença e o produto entre eles.
  3. Qual a diferença entre endl e "\n"? Em que situação usar cada um?

Operadores

05

Operadores Aritméticos

OperadorSignificadoExemploResultado
+Adição10 + 313
-Subtração10 - 37
*Multiplicação10 * 330
/Divisão10 / 33 (inteiro!)
%Módulo (resto)10 % 31
++Incrementox++x = x + 1
--Decrementox--x = x - 1

Atenção: Divisão entre dois inteiros resulta em inteiro! 7 / 2 = 3, não 3.5. Para resultado decimal, pelo menos um número deve ser float: 7.0 / 2 = 3.5.

Operadores Relacionais

OperadorSignificadoExemploResultado
==Igual a5 == 5true
!=Diferente de5 != 3true
>Maior que7 > 3true
<Menor que3 < 7true
>=Maior ou igual7 >= 7true
<=Menor ou igual3 <= 5true

Operadores Lógicos

OperadorSignificadoExemploResultado
&&E (AND) — ambos verdadeirostrue && falsefalse
||OU (OR) — ao menos um verdadeirotrue || falsetrue
!NÃO (NOT) — inverte!truefalse
operadores.cpp
#include <iostream>
using namespace std;

int main() {
    int a = 10, b = 3;

    // Aritméticos
    cout << "Soma:    " << (a + b)  << endl;  // 13
    cout << "Divisão: " << (a / b)  << endl;  // 3  (inteiro!)
    cout << "Resto:   " << (a % b)  << endl;  // 1

    // Relacionais
    cout << "a > b? "  << (a > b)  << endl;  // 1 (true)
    cout << "a == b? " << (a == b) << endl;  // 0 (false)

    // Lógicos
    bool ok = (a > 5) && (b < 10);  // true AND true = true
    cout << "Condição: " << ok << endl;  // 1

    return 0;
}
Exercício de Fixação
  1. Calcule mentalmente: 17 % 5 e 20 % 4. Para que serve o módulo no dia a dia da programação?
  2. Escreva uma expressão lógica que verifique se uma nota está entre 5 e 8 (inclusive).
  3. Crie um programa que leia dois números e mostre qual é o maior, qual é o menor e o resto da divisão do maior pelo menor.

Estruturas Condicionais

06

Estruturas condicionais permitem que o programa tome decisões com base em condições. São a base da lógica de qualquer software.

notas.cpp — Verificação de aprovação
#include <iostream>
using namespace std;

int main() {
    float nota;
    cout << "Digite sua nota (0 a 10): ";
    cin >> nota;

    if (nota >= 7.0) {           // Se nota >= 7: aprovado
        cout << "APROVADO!" << endl;
    } else if (nota >= 5.0) {   // Senão, se >= 5: recuperação
        cout << "RECUPERAÇÃO" << endl;
    } else {                     // Caso nenhuma condição seja verdade
        cout << "REPROVADO" << endl;
    }

    return 0;
}

Lembre-se: == (dois iguais) compara valores. = (um igual) atribui um valor. Confundir os dois é um dos erros mais comuns em C++!

temperatura.cpp — Exemplo com sensor (conexão Arduino!)
#include <iostream>
using namespace std;

int main() {
    float temp;
    cout << "Temperatura atual (°C): ";
    cin >> temp;

    if (temp < 0) {
        cout << "Abaixo de zero! Risco de gelo." << endl;
    } else if (temp < 15) {
        cout << "Frio — Vista um casaco." << endl;
    } else if (temp < 25) {
        cout << "Temperatura agradável." << endl;
    } else {
        cout << "Calor! Hidrate-se." << endl;
    }

    return 0;
}
// No Arduino: ideal para leitura de sensores de temperatura como o LM35 ou DHT11!
Exercício de Fixação
  1. Crie um programa que leia um número inteiro e diga se ele é par ou ímpar. (Dica: use o operador %)
  2. Leia 3 notas, calcule a média e classifique: Aprovado (≥7), Recuperação (5 a 6,9) ou Reprovado (<5).
  3. Crie um programa que leia a idade de uma pessoa e informe a faixa: criança (0–11), adolescente (12–17), adulto (18–59) ou idoso (60+).

Estruturas de Repetição

07

Laços permitem executar um bloco de código várias vezes sem precisar reescrevê-lo — são indispensáveis em qualquer programa real.

Laço for — quando sabemos quantas vezes repetir

tabuada.cpp
#include <iostream>
using namespace std;

int main() {
    int numero;
    cout << "Tabuada de qual número? ";
    cin >> numero;

    // for (início; condição de parada; passo)
    for (int i = 1; i <= 10; i++) {
        cout << numero << " x " << i << " = " << (numero * i) << endl;
    }

    return 0;
}

Laço while — quando repetimos enquanto uma condição for verdadeira

senha.cpp — Controle de tentativas
#include <iostream>
using namespace std;

int main() {
    const int SENHA     = 1234;  // Senha correta
    int       tentativa;
    int       tentativas = 0;

    cout << "Digite a senha: ";
    cin >> tentativa;

    // Repete enquanto errar e não atingir 3 tentativas
    while (tentativa != SENHA && tentativas < 3) {
        tentativas++;
        cout << "Senha incorreta! Tentativa " << tentativas << "/3\n";
        cout << "Tente novamente: ";
        cin >> tentativa;
    }

    if (tentativa == SENHA) {
        cout << "Acesso liberado!" << endl;
    } else {
        cout << "Conta bloqueada!" << endl;
    }

    return 0;
}
// No Arduino: while é usado para aguardar um sensor atingir certo valor!

Cuidado com loops infinitos! Se a condição do while nunca se tornar falsa, o programa trava. Certifique-se de que a variável de controle é atualizada dentro do laço.

Exercício de Fixação
  1. Use um for para exibir todos os números pares de 2 a 20.
  2. Use um while para acumular números digitados pelo usuário. O programa para quando o usuário digitar 0, então exibe a soma total.
  3. Com for, calcule o fatorial de um número digitado (ex: 5! = 5×4×3×2×1 = 120).
  4. Qual a diferença principal entre for e while? Dê um exemplo de situação ideal para cada um.

Funções

08

Funções são blocos de código reutilizáveis que executam uma tarefa específica. Elas organizam o programa, evitam repetição e facilitam a manutenção.

Princípio DRY: "Don't Repeat Yourself" — se você escreve o mesmo código em dois lugares, provavelmente deveria criar uma função!

Anatomia de uma função

Estrutura geral
// tipo_retorno  nome_da_funcao(tipo param1, tipo param2, ...)
int somar(int a, int b) {
    return a + b;   // Retorna um int para quem chamou a função
}

// void = sem retorno   |   int, float, string... = com retorno
funcoes.cpp — Exemplos completos
#include <iostream>
using namespace std;

// Função sem retorno e sem parâmetros
void saudacao() {
    cout << "Olá! Bem-vindo ao sistema." << endl;
}

// Função sem retorno, com parâmetro
void saudar(string nome) {
    cout << "Olá, " << nome << "!" << endl;
}

// Função com retorno — calcula e devolve o resultado
float calcularMedia(float n1, float n2, float n3) {
    return (n1 + n2 + n3) / 3.0;
}

int main() {
    saudacao();              // Chamada sem argumento
    saudar("Ana");           // Passando um argumento
    saudar("Carlos");

    float media = calcularMedia(8.0, 6.5, 9.0);  // Recebe o retorno
    cout << "Média: " << media << endl;   // 7.833...

    return 0;
}
Exercício de Fixação
  1. Crie uma função maximo(int a, int b) que receba dois inteiros e retorne o maior deles.
  2. Crie uma função ehPar(int n) que retorne true se o número for par e false se for ímpar.
  3. Crie uma função exibirLinha(char c, int qtd) que exiba o caractere c repetido qtd vezes. Ex: exibirLinha('-', 10) exibe ----------.

Vetores (Arrays)

09

Um vetor é uma variável que armazena vários valores do mesmo tipo em sequência. Em vez de criar 10 variáveis separadas para 10 notas, use um único vetor!

Declaração e acesso

arrays.cpp
#include <iostream>
using namespace std;

int main() {
    // Declaração: tipo nome[tamanho]
    float notas[5];                         // 5 posições (índices 0 a 4)

    // Declaração já com valores iniciais
    int idades[4] = {17, 16, 18, 15};

    // Acesso por índice — começa em 0!
    cout << "Primeira idade: " << idades[0] << endl;  // 17
    cout << "Última idade:   " << idades[3] << endl;  // 15

    idades[1] = 19;  // Modifica o segundo elemento

    return 0;
}

Atenção! Índices começam em 0. Um vetor de tamanho 5 tem índices de 0 a 4. Acessar o índice 5 é um erro grave — acesso à memória indevida!

Percorrendo vetores com for

media_turma.cpp
#include <iostream>
using namespace std;

int main() {
    const int TAM = 5;
    float notas[TAM];
    float soma = 0;

    // Leitura das notas com laço
    for (int i = 0; i < TAM; i++) {
        cout << "Nota do aluno " << (i + 1) << ": ";
        cin >> notas[i];
        soma += notas[i];   // Acumula a soma
    }

    cout << "\n--- Resultado ---" << endl;

    // Exibe todas as notas
    for (int i = 0; i < TAM; i++) {
        cout << "Aluno " << (i + 1) << ": " << notas[i] << endl;
    }

    cout << "Media da turma: " << (soma / TAM) << endl;
    return 0;
}
// No Arduino: vetores guardam múltiplas leituras de sensores ao longo do tempo!
Exercício de Fixação
  1. Crie um vetor com 7 temperaturas e calcule a temperatura média da semana.
  2. Dado um vetor de 10 números, encontre e exiba o maior e o menor valor.
  3. Leia 5 nomes e os exiba em ordem inversa (do último para o primeiro).

Boas Práticas de Programação

10

Programar bem não é só fazer o código funcionar — é fazer código que outras pessoas (e você no futuro) consigam entender e modificar.

Indentação

Indentação são os recuos (espaços/tabs) que delimitam blocos de código. Código mal indentado é difícil de ler e dar manutenção.

❌ Sem indentação — difícil de ler
for(int i=0;i<5;i++){if(i%2==0){cout<<i<<endl;}}
✅ Com indentação — fácil de ler
for (int i = 0; i < 5; i++) {
    if (i % 2 == 0) {
        cout << i << endl;
    }
}

Comentários

Tipos de comentários
// Comentário de linha única — explica o que está na frente
int contador = 0;  // Começa em zero

/*
 * Comentário de múltiplas linhas
 * Ideal para documentar funções ou blocos complexos
 */
float calcularMedia(float n1, float n2, float n3) {
    return (n1 + n2 + n3) / 3.0;
}

Nomes de Variáveis

❌ Evite✅ PrefiraMotivo
int xint idadeAlunoNome claro e descritivo
float nfloat notaFinalAutoexplicativo
string str1string nomeProdutoContexto claro
int a, b, cint largura, altura, areaSem ambiguidade

Convenção camelCase: Em C++, é comum usar camelCase para variáveis e funções — primeira palavra minúscula, demais capitalizadas: mediaFinal, calcularArea(), totalDeAlunos.

Exercício de Fixação
  1. Reescreva aplicando boas práticas: int a=10;int b=20;int c=a+b;cout<<c;
  2. Liste 5 nomes de variáveis ruins e reescreva-as de forma mais descritiva.
  3. Por que boas práticas são especialmente importantes em projetos desenvolvidos em equipe?

Exercícios Práticos

11

Coloque em prática tudo o que aprendeu. Estes exercícios combinam múltiplos conceitos em um único programa.

Exercícios Completos
  1. Calculadora simples: Leia dois números e uma operação (+, -, *, /) e exiba o resultado. Use if/else if para tratar cada operação. Trate divisão por zero!
  2. Fibonacci: Exiba os 10 primeiros números da sequência de Fibonacci usando for e um vetor.
  3. Cadastro de turma: Armazene nomes e notas de 5 alunos em vetores. Exiba uma tabela e indique quem está aprovado (nota ≥ 7).
  4. IMC: Crie uma função calcularIMC(float peso, float altura) que retorne o IMC e outra classificarIMC(float imc) que exiba a classificação (abaixo do peso, normal, sobrepeso, obeso).
  5. Palíndromo: Leia uma palavra e verifique se é um palíndromo (igual de trás para frente). Ex: "arara", "racecar".

Pequenos Desafios

12

Para quem quer ir além! Estes desafios são mais elaborados e envolvem criatividade e raciocínio lógico avançado.

Desafios Avançados
  1. 🎲 Jogo de adivinhação: O computador sorteia um número entre 1 e 100 (rand() % 100 + 1). O usuário tenta adivinhar; o programa diz "maior" ou "menor". Conte as tentativas.
  2. 📊 Ordenação manual: Leia 5 números, ordene do menor para o maior sem usar funções de biblioteca (use dois for aninhados — Bubble Sort).
  3. 🔢 Números primos: Crie uma função que retorne true se um número for primo. Use-a para listar todos os primos até 100.
  4. 💰 Caixa eletrônico: O usuário informa um valor a sacar. O programa informa o menor número de notas de R$100, R$50, R$20, R$10 e R$5 necessárias.
  5. 🏦 Mini banco: Crie um menu com while + if que permita: depositar, sacar, ver saldo e sair. Controle o saldo com double.

Preparação para Arduino

Como tudo o que você aprendeu será aplicado em projetos eletrônicos reais

if / else

Verificar leituras de sensores: "Se o sensor ultrapassar 40°C, acione o ventilador."

for / while

O loop() do Arduino funciona como um while(true) infinito, executando continuamente seu código.

Funções

No Arduino, setup() e loop() são funções. Você criará as suas para controlar LEDs, motores e displays.

Variáveis e tipos

Os mesmos tipos (int, float, bool) armazenam leituras de sensores e controlam estados de componentes.

Vetores

Armazenam múltiplas leituras de sensores ao longo do tempo ou mapeiam sequências de LEDs.

Boas práticas

Comentários e nomes claros são essenciais em projetos embarcados, onde o código controla hardware real.

Exemplo real em Arduino — LED com sensor analógico
// Veja como os conceitos desta aula aparecem no Arduino IDE!

const int LED    = 13;   // const: pino do LED
const int SENSOR = A0;   // const: pino do sensor analógico
int leituras[10];         // Vetor para 10 leituras (arrays!)

void setup() {            // Função de inicialização — roda 1 vez
    pinMode(LED, OUTPUT);
    Serial.begin(9600);
}

void loop() {             // Função principal — while(true) infinito!
    int valor = analogRead(SENSOR);   // Lê o sensor (variável!)

    if (valor > 500) {      // Estrutura condicional!
        digitalWrite(LED, HIGH);   // Liga o LED
    } else {
        digitalWrite(LED, LOW);    // Desliga o LED
    }

    delay(100);             // Aguarda 100 ms
}

Você está pronto! Com os conceitos desta aula, você já tem a base para programar o Arduino. Na próxima aula, instalaremos o Arduino IDE e criaremos seu primeiro projeto eletrônico com C++!

✍️ Material produzido para o Ensino Médio Técnico em Desenvolvimento de Sistemas

📚 caderno-ti.blogspot.com  ·  Prof. Elton Alex Silva

Comentários

Postagens mais visitadas deste blog

Introdução aos Sistemas de Gerenciamento de Banco de Dados

Introdução ao HTML, CSS e JavaScript - Guia para Iniciantes

Introdução ao Excel