Você está na página 1de 5

Estrutura de dados em C++

Elton de Assis, Gabriel Victor, Marcos Vinícius, Matheus Passos

Instituto Federal de Educação, Ciência e Tecnologia da Bahia

Resumo: Esse artigo

Abstract: aa

Palavra chave: Linguagem de programação, estrutura de dados e sintaxe

1. Introdução a linguagem C++

O C++ é uma linguagem de nível médio, foi criado tendo como base a
linguagem C. Seu desenvolvimento começou na década de 80 e foi finalizada em
1983 pelo dinamarquês Bjarne Stroustrup na empresa Nokia Bell Labs. A linguagem
C++ é caracterizada por ser uma linguagem de sistemas. Ela é utilizada comumente
em aplicações que necessitam de gerência manual do uso de memória; porém, C++
é na verdade uma linguagem bastante flexível, podendo ser utilizada para
praticamente qualquer propósito moderno, desde o desenvolvimento de sistemas
embarcados, bibliotecas gráficas, jogos, sistemas operacionais, até mesmo
ferramentas de gerenciamento automático de memória, em determinadas ocasiões.

O Ambiente integrado de desenvolvimento (IDE) normalmente idealizado


para desenvolver na linguagem C++ é o Code::Blocks. Essa IDE é também
categorizada como sendo cross-platform, ou seja, ela funciona em vários sistemas
operacionais. A IDE é de código livre e escrita em C++.

2. Estrutura básica de um programa em C++


#include <iostream>
using namespace std;
int main() {
cout << “Olá, Mundo!” << endl;
return 0;
}

No código acima, observa-se a inclusão da biblioteca "iostream" na


primeira linha. Essa biblioteca é responsável pelas entradas e saídas básicas do
programa. Ela dá suporte à utilização da função cout para a impressão de texto no
console, por exemplo.

Para utilizar qualquer biblioteca extra no programa, basta inseri-la no topo do


código usando a diretiva #include, e em seguida especificando o nome da biblioteca
entre os sinais menor e maior.

Na segunda linha tem-se a estrutura organizacional “namespace”, utilizada


para organizar os módulos do programa a fim de evitar conflitos com os nomes
iguais. Na terceira linha o programa principal indica que terá um retorno do tipo
inteiro a quem fará a execução, ou seja, no sistema operacional, por exemplo.
Nota-se que o nome da função é “main”, indicando assim, o nome padrão para a
principal função do programa. A função “cout” é utilizada na na linha quatro, ela é
responsável por um texto ou dado no console. Já a função endl indica o fim da linha.
Na linha 5, tem-se o retorno do programa, no caso o número 0, indicando que o
programa foi executado sem nenhum problema.

3. Tipos de paradigma

A linguagem C++ é considerada multiparadigma, ou seja, suporta vários


paradigmas de programação baseados em seu funcionamento e estruturação. A
linguagem C é apresentada com o paradigma de programação procedural, isso foi
um avanço significativo na forma que as linguagens criavam os programas. No
entanto, o C++ foi além do paradigma procedural e incrementou a possibilidade de
desenvolvimento Orientado a Objetos. Apesar de ter sido um grande sucesso a
Programação Orientada a Objetos (POO), a programação procedural ainda é
suportada pelo C++ atualmente.Todavia, o paradigma funcional não é muito
difundido entre os desenvolvedores atuais de C++.

Um dos principais objetivos da orientação a objetos é o definir novos tipos de dados,


afim de agrupar funções para sua manipulação criando uma entidade
representativa. Um objeto nada mais é do que uma variável, da qual sua estrutura
interna pode ser complexa e possui operações específicas para que seja possível
manipulá-la. Algumas classes e objetos são especificados e definidos pela própria
linguagem, já outros podem ser especificados e definidos pelo desenvolvedor. Além
dos objetos, a linguagem C++ também pode definir funções, tendo estas, nome,
uma lista de argumentos e um tipo de retorno.

Mesmo que ainda haja uma grande discussão acerca da orientação a


objetos, seu principal conceito já representa uma expressiva evolução, a de juntar
características e funcionalidades em um mesmo lugar. No caso do C++, essa
característica foi incluída por meio da estrutura struct, que juntou todas essas
informações com o advento das classes. Atualmente, é possível criar instâncias
através de estruturas definidas tanto com o struct como também com classes.

Compilação:

O processo de compilação funciona como uma decodificação do código fonte de


alto nível para um arquivo executável em linguagem de máquina, o processo de
compilação passa por duas etapas básicas, sendo elas análise e síntese:

Análise: Primeira etapa onde vai ocorrer uma análise na estrutura do código,
verificação da sintaxe e identificação de erros.

Síntese: Segunda etapa onde ocorre a decodificação do arquivo criado pelo


desenvolvedor para um arquivo executável de baixo nível.

Vantagens do processo de compilação:

Pelo fato da compilação ter etapas de validação e otimização antes do arquivo


executável ser produzido, fazendo com que a compilação acabe tendo uma melhor
performance na execução dos seus programas, os resultados são bem mais
confiáveis pois os erros são identificados em tempos de compilação

Desvantagens do processo de compilação:

Como um compilador decodifica um código fonte especifico para cada máquina é


necessário várias versões do código fonte para cada tipo de sistema como por
exemplo um para windows, outro para linux e um outro para MacOS, aumentando
os custo para manutenções e atualizações do programa.
Tipagem em C++

C++ é classificada como sendo estaticamente tipada e fortemente tipada, ou seja,


para que o programa seja executado é necessário a especificação do tipo de dado
que está sendo utilizado, e não podendo ser alterado ao longo do programa.

Dizemos que C++ é uma linguagem fortemente tipada pelo fato dele não realizar
nenhum tipo de conversão dos tipos de dados de forma automática.

9. Algoritmos de Ordenação de dados

Algoritmos de ordenação, são formas de rearranjar os dados em determinada


forma, esse tipo de algoritmo pode ser aplicado em diferentes tipos de estruturas,
tais como: matrizes, vetores e etc. O tipo de algoritmo pode ser classificado como
estável, se na sua manipulação, ser preservado a ordem de itens com valores
idênticos.

InsertionSort:

InsertionSort ou “Ordenação por inserção”, utilizando-se de um vetor para


exemplificação desse tipo de algoritmo, a idéia da ordenação InsertionSort é pegar o
maior ou menor, elemento do vetor e movimentá-lo para primeira posição (no caso
de pegar o menor valor e a ordem desejada for crescente) ou última (no caso de ser
selecionado o maior valor e a ordem deseja for crescente). Sua comparação é feita
entre dois valores, no caso de um programa onde o usuário deseja criar um ordem
crescente e for pego o valor do vetor na sua última posição, o algoritmo vai fazer
testes (entre dois números) da direita para esquerda, onde esse teste irá parar
quando o valor de número selecionado pelo usuário for maior em relação ao número
à sua esquerda ou quando chegar no final do vetor.

SelectionSort:

SelectionSort, diferente do anterior, o SelectionSort trabalha com as posições que


cada valor vai se encontrar, ou seja, não é só feita apenas a comparação dos dados
(esquerda e direita) mas sim a sua posição também, fazendo comparação de um
certo valor, com um distinto, se o valor for maior (no caso do valor comparador e a
ordem ser crescente) ele irá pega sua posição e guarda, fazendo o resto com os
demais, se não achar um valor que seja menor, a posição que foi guardada é
trocada.

BubbleSort:
Bubble Sort é o algoritmo de classificação mais simples que funciona trocando
repetidamente os elementos adjacentes se eles estiverem na ordem errada.
Exemplo: {1;3;2} > {1;2;3}, ele compara o valor em destaque e compara se o
seguinte é menor ou não, nesse caso 2<3, então é feito a troca.

HeapSort
Técnica de classificação baseada na estrutura de dados binary Heap. É semelhante
ao tipo de seleção onde encontramos primeiro o elemento mínimo e colocamos o
elemento mínimo no início. Repetimos o mesmo processo para os elementos
restantes.

Você também pode gostar