Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: C++ ::: STL (Standard Template Library) ::: Vector C++

Como usar a classe/contêiner vector da STL em seus programas C++

Quantidade de visualizações: 8697 vezes
O vetor, ou vector, é uma das classes contêineres mais simples da STL - Standard Template Library do C++. Um vector se comporta como um vetor, ou seja, uma matriz de uma linha e várias colunas, ou seja, seus elementos estão dispostos em posições contiguas na memória. O que diferencia um vector de um array comum é que o tamanho de um vector pode ser modificado dinamicamente.

A especificação do template da classe vector é:

template <class T, class Allocator = allocator<T>> class vector


Aqui T é o tipo de dados sendo armazenado (já ouvir falar em genéricos, não?) e Allocator define o modelo de alocação de armazenagem. Por padrão, o template da classe allocator para o tipo T é usado, o que define o modelo de alocação de memória mais simples e independente de valores.

Objetos da classe vector são úteis nas seguintes situações:

a) Acessar os elementos individualmente usando seus índices (tempo constante);
b) Percorrer os elementos em qualquer ordem (tempo linear);
b) Adicionar ou remover elementos no final do contêiner (tempo constante amortizado).

Para usarmos um vector em nossos programas C++ temos que incluir este contêiner da seguinte forma:

#include <vector>


Veja um trecho de código no qual criamos um vector, inserimos três inteiros e finalmente usamos um iterador para percorrer os elementos e imprimir seus valores:

#include <cstdlib>
#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
......


Ao executarmos este código C++ nós teremos o seguinte resultado:

54
13
87

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como obter a quantidade de linhas em um controle TDBGrid do Delphi (duas formas)

Quantidade de visualizações: 10083 vezes
A quantidade de linhas em um controle TDBGrid pode ser obtida de duas formas diferentes. A primeira consiste em fazer uma conversão de TDBGrid para TStringGrid e usar a propriedade RowCount. Veja:

procedure TForm3.Button3Click(Sender: TObject);
var
  quantLinhas: Integer;
begin
  // vamos obter a quantidade de linhas no DBGrid
  quantLinhas := TStringGrid(DBGrid1).RowCount;
......


Ao executar este código você verá um mensagem parecida com:

"O DBGrid possui 5 linhas."

Note que a propriedade RowCount inclui a linha reservada aos títulos das colunas do DBGrid, ou seja, uma linha a mais que a quantidade de registros no controle.

A segunda forma de se obter a quantidade de linhas no DBGrid consiste em obter a quantidade de registros no TDataSet no qual o DBGrid está conectado por meio de sua propriedade DataSource. Veja como isso pode ser feito:

procedure TForm3.Button3Click(Sender: TObject);
var
  quantLinhas: Integer;
begin
  // vamos obter a quantidade de linhas no DBGrid
  quantLinhas := DBGrid1.DataSource.DataSet.RecordCount;
......


Veja que aqui nós usamos a propriedade RecordCount para obter a quantidade de registros no DataSet. Note que agora a contagem de linhas não inclui a linha reservada para os títulos das colunas.

Esta dica foi escrita e testada no Delphi 2009.


Delphi ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o seno de um número ou ângulo em Delphi usando a função Sin()

Quantidade de visualizações: 12464 vezes
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula:

\[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \]

Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função Sin() da linguagem Delphi. Esta função, incorporada por padrão à linguagem, recebe um valor numérico (Extended) e retorna um valor Extended, ou seja, também numérico) entre -1 até 1 (ambos inclusos). Veja:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add('Seno de 0 = ' + FloatToStr(Sin(0)));
......


Ao executar este código Delphi nós teremos o seguinte resultado:

Seno de 0 = 0
Seno de 1 = 0,841470984807897
Seno de 2 = 0,909297426825682

Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo:




Java ::: Dicas & Truques ::: Matemática e Estatística

Como converter de hexadecimal para decimal usando o método parseInt() da classe Integer da linguagem Java

Quantidade de visualizações: 13490 vezes
Em algumas situações nós precisamos converter um valor hexadecimal em um valor decimal. Isso pode ser feito por meio do método parseInt() da classe Integer do Java. Tudo que precisamos fazer é fornecer o valor 16 como segundo argumento na chamada desse método.

Veja o exemplo a seguir:

 
package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    String hex = "F";
     
    // efetua a conversão de hexadecimal para
    // decimal
......


Ao executar este código nós teremos o seguinte resultado:

O hexadecimal F em decimal é 15


C# ::: Windows Forms ::: Formulários e Janelas

Como maximizar um formulário Windows Forms ao clicar em um botão usando a linguagem C#

Quantidade de visualizações: 13025 vezes
Em algumas situações gostaríamos de maximizar um formulário Windows Forms baseado em alguma ação do usuário. Isso pode ser feito definindo-se a constante FormWindowState.Maximized para a propriedade WindowState da classe Form.

O trecho de código abaixo mostra como maximizar o formulário ao clicarmos em um botão:

private void button1_Click(object sender, EventArgs e){
  // vamos maximizar o formulário
......



Java ::: Dicas & Truques ::: Strings e Caracteres

Manipulação de texto em Java - Como contar as ocorrências de um caractere em uma string

Quantidade de visualizações: 18079 vezes
Nesta dica mostrarei como podemos combinar um laço for e o método charAt() da classe String para contar as ocorrências de um caractere (uma letra) em uma palavra, frase ou texto.

Veja o código completo para o exemplo:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    String frase = "Programar em Java é muito bom";
    System.out.println("Frase: " + frase); 
    
    int cont = 0;
    char letra = 'a'; // ocorrências da letra "a"
     
    for(int i = 0; i < frase.length(); i++){
......


Ao executar este código Java nós teremos o seguinte resultado:

Frase: Programar em Java é muito bom
A frase contém 4 ocorrências da letra "a"


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 16 usuários muito felizes estudando em nosso site.