5/100 Dias Estudando Estruturas de Dados - Prática para Crianças | Lang Happy!
Teoria vs Prática
Imagine que construir uma casa é como criar um desenho especial
. Antes de começarmos a desenhar, precisamos de uma ideia, como se fosse um plano para saber como a casa vai ficar. Isso é chamado de teoria
. É como se estivéssemos planejando cada detalhe da casa para que ela seja perfeita.
A teoria
é como uma planta mágica que mostra como a casa vai ser. Mas, para tornar essa casa real, precisamos colocar as mãos na massa
, ou seja, começar a construir de verdade. Isso é a prática
. É quando pegamos ferramentas e materiais para dar vida ao nosso desenho e transformá-lo em uma casa de verdade.
Happy!
Para facilitar o entendimento, vamos inventar nossa própria linguagem de programação.
Que tal chamarmos de Happy!
?
obs: Happy! é apenas para aprender. Não há documentação nem um compilador para ela, então, por favor, não leve isso muito a sério.
Básico de matrizes
-
Declaração
matriz meusNumeros = [1, 2, 3];
-
Isso declara uma matriz de numeros.
-
O
ponto e virgula(;)
indica que aquele trecho de código acabou.
-
-
Mostrando valores
meusNumeros.imprimirValores();
-
Mostra todos os valores da nossa matriz.
-
O
ponto final(.)
é usado para acessar funcionalidades da nossa matriz.
-
-
Pegando valor em posição especifica
variavel posicao = 2; imprimir(meusNumeros.pegarValor(posicao));
-
É declarado uma variavel chamada
posicao
com o valor2
; -
A função
imprimir
mostra determinado valor na tela. -
A função
pegarValor
recebe umaposição
damatriz
e retorna ovalor
dela.
saída:
3
"Mas porque a posição
2
é igual a3
, não era pra ser2
?"Não. Na programação a primeira posição de determinado conjunto não é
1
, é0
.Por isso o valor da posição
2
é3
. -
-
Inserindo valor
meusNumeros.inserirValor(4);
- A função
inserirValor
adiciona um valor ao final da matriz.
- A função
Invertendo Matriz
Dada uma matriz de numeros inteiros, sua tarefa é inverter
essa matriz.
Exemplo
Entrada: [1, 2, 3]
Saída: [3, 2, 1]
Solução em Happy!
Antes da solução, precisamos conhecer o laço de repetição
para
.
-
Para
para numero dentro de numeros { imprimir(numero); }
O
para
entra dentro da matriz e guarda os números um depois do outro na variavelnumero
.
Vamos para solução
matriz numeros = [1, 2, 3];
matriz numerosInvertidos = [];
numerosInvertidos.tamanho = 3;
variavel posicao = 2;
para numero dentro numeros {
numerosInvertidos.inserirValor(posicao, numero);
posicao = posicao - 1;
}
numerosInvertidos.imprimirValores();
-
Passo 1:
Imagine que temos uma caixa mágica chamada "numeros" com os números 1, 2 e 3 dentro.
-
Passo 2:
Agora, pegamos outra caixa mágica vazia chamada "numerosInvertidos" para guardar nossos números de forma diferente.
-
Passo 3:
Pegamos um número da caixa "numeros" (começamos com o 1) e o colocamos na "numerosInvertidos". Agora, a "numerosInvertidos" tem o número 1.
-
Passo 4:
Dizemos a um ajudante mágico chamado "posicao" que ele começa na posição 2.
-
Passo 5:
Pegamos o próximo número na "numeros" (agora é o 2) e o colocamos na posição indicada pela "posicao" na "numerosInvertidos". Agora, a "numerosInvertidos" tem os números 2 e 1.
-
Passo 6:
Diminuímos a posição do nosso ajudante "posicao" em 1, então agora ele está na posição 1.
-
Passo 7:
Pegamos o último número na "numeros" (agora é o 3) e o colocamos na posição indicada pela "posicao" na "numerosInvertidos". Agora, a "numerosInvertidos" tem os números 3, 2 e 1.
-
Passo 8:
Abrimos a caixa "numerosInvertidos" e mostramos os números 3, 2 e 1, que são os números da "numeros" organizados de trás para frente!
Solução em C++ - Para adultos
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
vector<int> reverseArray(vector<int> arr) {
vector<int> reversed = arr;
reverse(reversed.begin(), reversed.end());
return reversed;
}
int main() {
vector<int> arr{1, 2, 3};
vector<int> reversed = reverseArray(arr);
for_each(reversed.begin(), reversed.end(), [](int value) {
cout << value << "\n";
});
return 0;
}
Extras
Como mencionei anteriormente, "Happy!" é uma criação da minha imaginação, e o compilador para essa linguagem está na minha mente.
No entanto, se você estiver interessado em aprender a programar em português, eu recomendo o Portugol. É uma ferramenta muito útil para começar a entender como a programação funciona. Divirta-se explorando o mundo da programação!