Você está na página 1de 5

Fundamentos de Programação:

Conceitos Básicos de C++


Mateus Pereira da Silva1 (IFCE), Jorge Luís Costa Maia2 (IFCE)
1
Rua Sessenta, 260 – José Walter – Fortaleza/CE – CEP 60750-740
mateus.pereira05@aluno.ifce.edu.br
2
Rua Lauro Maia, 255, Apartº 401 - José Bonifácio – Fortaleza/CE – CEP 60055-210
jorge.maia06@aluno.ifce.edu.br
Resumo. A linguagem C++ tem sido uma fonte base para os avanços
tecnológicos. Com sua alta capacidade e flexibilidade para a programação de
programas computacionais, tem se mostrado uma forte ferramenta para o
desenvolvimento rápido e conceitual. Sua forte ligação com a linguagem C e
sua capacidade de Programação Orientada a Objeto, além de sua vasta
derivação de outras linguagens adaptadas à uma, torna esta linguagem uma
fonte riquíssima para o conhecimento e para a evolução das máquinas.

Abstract. The C++ language has been a base source for technological
advances. With its high capacity and flexibility for programming computer
programs, it has been shown to be a strong tool for rapid and conceptual
development. Its strong connection with the C language and its Programming
Oriented Object capacity, in addition to its vast derivation from other
languages adapted to one, makes this language a very rich source for
knowledge and for the evolution of machines.

1. INTRODUÇÃO
Este artigo tem como objetivo discorrer conceitos básicos sobre a linguagem C+
+. Durante anos, seu crescimento no universo da programação tem sido notório e
fundamental para sua evolução. De acordo com o RedMonk Programming Language
Rankings, a linguagem C++ está em 5º lugar, empatada com C#, entre as linguagens
mais utilizadas no mundo. Daí vemos a sua importância a nível mundial para o mundo
dos programadores.
Além de status, sua importância inquestionável está no fato de herdar muitos
conceitos do C, porém com inúmeras funcionalidades novas. Ela tem se provado uma
linguagem bastante flexível, por possuir conceitos de outras linguagens fora o C.
Embora isso seja vantajoso, é importante ressaltar que, por possuir uma gama de
estruturas derivadas, sua manipulação deve ser tomada com bastante cautela para que
não seja gerado erros inesperados.
Alguns fatos importantes a serem ressaltados é que esta linguagem foi criada
para ser tão eficiente quanto C, porém com novas funções. Ademais, é uma linguagem
que suporta múltiplos paradigmas, ou seja, possuí uma variedade em sua identidade que
juntas definem sua operação e solução de problemas. Ela possui uma liberdade para a
escolha de opções, mesmo que seja errada; muitos de seus códigos podem ser
transferidos para o C facilmente por serem compatíveis e não é necessário um ambiente
de desenvolvimento muito potente para o seu uso.

2. HISTÓRIA
Criada na década de 80, por Bjarne Stroustrup, Cientista dinamarquês da
computação, no Bell Labs (empresa de pesquisa industrial e desenvolvimento
científico), inicialmente chamada de C with Classes, com o intuito de implementar uma
versão distribuída do núcleo Unix. Como o Unix era um sistema programado em C,
Stroustrup desejava a criação de uma linguagem que fosse compatível. Daí nasceria a
principal base de implementação do C++. Porém, o plano não era criar uma linguagem
dependente. Conseguinte Stroustrup utilizou diversas linguagens como base para sua
criação. Entre elas estão: ALGOL 68, Ada, CLU e ML.
Antes de seu nome ser alterado, sua implementação usava um pré-processador.
Em 1983, quando seu nome foi alterado para C++, novas características foram
atribuídas a ela. Inicialmente, a linguagem passou a exigir um compilador próprio
escrito pelo seu criador. Funções virtuais, sobrecarga de operações e funções,
referências, constantes, gerenciamento de manual de memória, melhorias na verificação
de tipos de dados e estilo de comentário de código de uma linha.
Assim como a linguagem em si, sua biblioteca padrão também sofreu melhorias
ao longo do tempo. Primeiramente com a E/S e posteriormente a Standard Template
Library (STL) algumas das principais funcionalidades que à distanciaram do C.

3.BIBLIOTECAS
Inicialmente, quando era chamado de C with Classes, as bibliotecas iniciais
eram derivadas do C. Mesmo com suas atualizações ela ainda continuou com essas
bibliotecas, porém, novas foram criadas para a implementação do C++.
A biblioteca padrão do C++ fornece vários containers genéricos, funções que
utilizam e manipulam tais containers, funções-objeto, cadeias de
caracteres e streams genéricos, suporte para algumas facilidades da linguagem e
funções de uso geral, como funções matemáticas.
Os containers genéricos são uma implementação de elementos conhecidos
em estrutura de dados. Diferentes containers compartilham uma mesma interface, o
acesso é o mesmo. A escolha do uso geralmente depende da eficiência em determinadas
tarefas que o container deverá desempenhar, o que está relacionado com a
implementação interna da classe. Por exemplo, alguns containers são mais eficientes em
busca e menos eficientes em inserções. São vários os tipos de bibliotecas, porém
explanaremos algumas mais importantes para os conceitos básicos da linguagem.
3.1. ESTRADA E SAÍDA
As bibliotecas de estrada e saída de dados são essenciais em qualquer
linguagem, pois sempre iremos está trabalhando com estruturas que demandam estas
funcionalidades. No C++, a principal é a <Iostream>, que representa uma evolução da
<stdio.h> do C. Ela é responsável pela manipulação de fluxo de dados padrão do
sistema (entrada padrão, saída padrão e saída de erros padrão). Nesse caso usamos o Cin
e o Cout, um para a entrada padrão e o outro para a saída padrão.
3.2. OPERAÇÕES NUMÉRICAS
As bibliotecas de operações numéricas são essenciais para a simplificação de
códigos por meio de funções já existentes, sendo necessário somente codificá-la para
sua utilização. Com essa funcionalidade, diminui-se bastante o número de linhas de
código, um conceito essencial para códigos de grande escala.
Como escolhemos trabalhar com conceitos básicos, a biblioteca que falaremos
um pouco será a <numeric>, biblioteca típica da linguagem em estudo. Este
cabeçalho descreve um conjunto de algoritmos para realizar certas operações em
sequências de valores numéricos. Devido à sua flexibilidade, eles também podem ser
adaptados para outros tipos de sequências.
Algumas de suas funções são:
 accumulate: acumula valores no intervalo;
 adjacent_difference: calcula a diferença adjacente de intervalo;
 inner_product: calcula o produto interno cumulativo do intervalo;
 partial_sum: calcula somas parciais de intervalo;
 iota: armazena sequência crescente;
3.3. <STRING>
Este cabeçalho apresenta tipos de string, traços de caracteres e um conjunto de
funções de conversão:
 stoi: Converte uma sting em um inteiro
 stol: Converte uma sting em um long int
 stoul: Converte string em inteiro sem sinal
 stoll: Converte string em long long
 stoull: Converte string em long long sem sinal
 stof: Converte string em float
 stod: Converte string em double
 stold: Converte string em long double

5. Figures and Captions


Figure and table captions should be centered if less than one line (Figure 1), otherwise
justified and indented by 0.8cm on both margins, as shown in Figure 2. The caption
font must be Helvetica, 10 point, boldface, with 6 points of space before and after each
caption.
Figure 1. A typical figure

Figure 2. This figure is an example of a figure caption taking more than one
line and justified considering margins mentioned in Section 5.

In tables, try to avoid the use of colored or shaded backgrounds, and avoid
thick, doubled, or unnecessary framing lines. When reporting empirical data, do not use
more decimal digits than warranted by their precision and reproducibility. Table caption
must be placed before the table (see Table 1) and the font used must also be Helvetica,
10 point, boldface, with 6 points of space before and after each caption.
Table 1. Variables to be considered on the evaluation of interaction techniques
6. Images
All images and illustrations should be in black-and-white, or gray tones, excepting for
the papers that will be electronically available (on CD-ROMs, internet, etc.). The image
resolution on paper should be about 600 dpi for black-and-white images, and 150-300
dpi for grayscale images. Do not include images with excessive resolution, as they may
take hours to print, without any visible difference in the result.

7. References
Bibliographic references must be unambiguous and uniform. We recommend giving
the author names references in brackets, e.g. [Knuth 1984], [Boulic and Renault 1991];
or dates in parentheses, e.g. Knuth (1984), Smith and Jones (1999).
The references must be listed using 12 point font size, with 6 points of space
before each reference. The first line of each reference should not be indented, while the
subsequent should be indented by 0.5 cm.

References
O’Grady, Stephen (2020), The RedMork Programming Language Rankings: June 2020,
https://redmonk.com/sogrady/2020/07/27/language-rankings-6-20/.
Pacievitch, Yuri. C++ - InfoEscola, Navegando e Aprendendo.
https://www.infoescola.com/informatica/cpp/

Você também pode gostar