C++ ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar o tipo de dados size_t da linguagem C++Quantidade de visualizações: 15767 vezes |
O tipo size_t é definido no arquivo stddef.h e em outros headers, e sua definição pode ser encontrada da seguinte forma:typedef unsigned long size_t; Este tipo é usado para definir tamanhos de strings e blocos de memória. Foi proposto pelo ANSI C. É comum encontrar size_t substituindo unsigned int ou unsigned long. Muito frequente também é ver este tipo recebendo o resultado de uma chamada ao operator sizeof. Veja: #include <iostream> using namespace std; int main(){ // vamos obter a quantidade de bytes em um int size_t tam = sizeof(int); cout << "Um inteiro nesta arquitetura contém: " << tam << " bytes" << endl; } Ao executarmos este código nós teremos o seguinte resultado: Um inteiro nesta arquitetura contém: 4 bytes |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Desafio do número ausente. Dado um vetor de números naturais 1..n, encontre o valor ausenteQuantidade de visualizações: 648 vezes |
Pergunta/Tarefa: Dado o vetor: int valores[] = {1, 8, 7, 2, 6, 5, 3}; Encontre o elemento ausente na sequência de valores do vetor, sabendo que o primeiro valor é 1 e o último elemento é 8. Perceba que o vetor não precisa estar ordenado. Além disso, o entrevistador se certificará de que os valores serão sempre positivos e não haverá valores repetidos. Sua saída deverá ser parecida com: O número ausente é: 4 Dica: Use a fórmula n * (n + 1) / 2 para facilitar a resolução do exercício. Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> #include <locale.h> // função principal do programa int main(int argc, char *argv[]){ // vamos declarar um vetor de inteiros faltando // um valor na sequência (não necessariamente ordenada) // Note a ausência do número 4 int valores[] = {1, 8, 7, 2, 6, 5, 3}; int i, soma_n, ausente, soma_elementos; int quant = 8; // tamanho do vetor + 1 setlocale(LC_ALL,""); // para acentos do português // o primeiro passo é obter a soma de 1..n elementos // natuais usando a fórmula n*(n+1)/2 soma_n = (quant * (quant + 1)) / 2; // agora vamos somar os elementos do vetor soma_elementos = 0; for(i = 0; i < 7; i++){ soma_elementos = soma_elementos + valores[i]; } // agora calculamos o valor ausente ausente = soma_n - soma_elementos; // vamos mostrar o resultado printf("O número ausente é: %d", ausente); printf("\n\n"); system("PAUSE"); return 0; } |
Java ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em Java - Como obter a quantidade de nós em uma lista singularmente ligada usando JavaQuantidade de visualizações: 7093 vezes |
Em algumas situações precisamos obter a quantidade de nós em uma lista singularmente ligada. Nesta dica eu mostro como isso pode ser feito. Aqui estou assumindo que você criou uma lista singularmente ligada que possui dois nós gerenciadores, ou seja, uma referência para o primeiro nó na lista e uma referência para o último nó. Veja o código para um método que retorna a quantidade de nós na lista: // método que permite exibir os valores de // todos os nós da lista public int tamanho() { int tam = 0; // representa a quantidade de nós na lista // vamos obter uma referência ao início da lista No no = inicio; while (no != null) { // enquanto a lista não estiver vazia tam++; // incrementamos a variável tam no = no.proximo; // pula para o nó seguinte } return tam; } Veja como podemos chamar este nó a partir da classe principal da aplicação (Main.java): public class Main { public static void main(String[] args) { // vamos criar uma nova lista Lista lista = new Lista(); // insira alguns nós no início ou no final // da lista // exibe a quantidade de nós na lista System.out.println("A lista possui " + lista.tamanho() + " nós"); } } Ao executar a aplicação você terá um resultado parecido com: A lista possui 4 nós. |
Python ::: Dicas & Truques ::: Sistema |
Como obter o diretório do seu programa Python usando sys.path[0]Quantidade de visualizações: 9840 vezes |
Nesta dica eu mostrarei como é possível usar a primeira posição da lista de strings contida na propriedade path do módulo sys da linguagem Python. Lembre-se de que sys.path contém uma lista de strings especificando os caminhos de busca para os módulos Python. Veja o código completo para o exemplo: import sys # função principal do programa def main(): print("O diretório do programa é: ", sys.path[0]) if __name__== "__main__": main() Ao executarmos este código nós teremos o seguinte resultado: O diretório do programa é: c:\estudos_python |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercício Resolvido de C++ - Um método recursivo que calcula o número de Fibonacci para um dado índiceQuantidade de visualizações: 713 vezes |
Pergunta/Tarefa: Observe a série de números Fibonacci abaixo: Série: 0 1 1 2 3 5 8 13 21 34 55 89 Índice: 0 1 2 3 4 5 6 7 8 9 10 11 Este algoritmo consiste em, dado um determinado índice, retornar o número de Fibonacci correspondente. Recursivamente, o cálculo pode ser feito da seguinte forma: fib(0) = 0; fib(1) = 1; fib(indice) = fib(indice - 2) + fib(indice - 1); sendo o indice >= 2 Os casos nos quais os índices são 0 ou 1 são os casos bases (aqueles que indicam que a recursividade deve parar). Seu método deverá possuir a seguinte assinatura: int fibonacci(int indice){ // sua implementação aqui } Informe o índice: 6 O número de Fibonacci no índice informado é: 8 Veja a resolução comentada deste exercício usando C++: #include <string> #include <iostream> using namespace std; // assinatura da função recursiva int fibonacci(int indice); int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int indice; // vamos solicitar o índice do número de Fibonacci cout << "Informe o índice: "; // lê o índice cin >> indice; // calcula o número de Fibonacci no índice informado cout << "O número de Fibonacci no índice informado é: " << fibonacci(indice) << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } // função recursiva que o número de Fibonacci em um determinado índice int fibonacci(int indice){ if(indice == 0){ // caso base; interrompe a recursividade return 0; } else if(indice == 1){ // caso base; interrompe a recursividade return 1; } else{ // efetua uma nova chamada recursiva return fibonacci(indice - 1) + fibonacci(indice - 2); } } |
C# ::: Dicas & Truques ::: Sistema |
Como obter a quantidade de processadores na máquina atual usando a propriedade ProcessorCount da classe Environment do C#Quantidade de visualizações: 9692 vezes |
Nesta dica eu mostrarei como é possível usar a propriedade ProcessorCount da classe Environment para obter e retornar um inteiro contendo a quantidade de processadores na máquina atual. Veja o código C# completo para o exemplo: using System; namespace Estudos{ class Program{ static void Main(string[] args) { int proc = Environment.ProcessorCount; Console.WriteLine("Esta máquina possui: " + proc + " processador(s)."); Console.ReadKey(); } } } Ao executar este código nós teremos o seguinte resultado: Esta máquina possui: 4 processador(s). |
Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como usar recursividade em Delphi - Como usar recursão ou funções recursivas em DelphiQuantidade de visualizações: 15491 vezes |
Recursão ou recursividade é a habilidade que uma procedure ou function (função) possui de chamar a si própria uma vez, várias, indefinidamente ou até que a solução do problema a ser resolvido seja encontrada. Assim, podemos definir uma função recursiva (aqui uma procedure recursiva) em Delphi da seguinte forma (atenção: não execute este código):// uma procedure recursiva procedure Recursiva; begin // chama a si própria Recursiva; end; // vamos chamar a procedure pela primeira vez // a partir do Click de um botão procedure TForm1.Button1Click(Sender: TObject); begin Recursiva; end; O fato de eu pedir para que você não execute o código é que, uma vez clicado o botão, a procedure Recursiva será chamada e continuará chamando a si mesma até que a pilha do sistema estoure, ou seja, como funções recursivas são implementadas usando a pilha do sistema operacional e não na área de memória destinada a cada aplicativo o resultado será um travamento do programa, e, caso não estejamos com sorte, um travamento do sistema operacional. Sabedor do risco, clique no botão para ver o resultado você mesmo. O que devemos saber a respeito das funções recursivas é que estas precisam saber o ponto de parada, de forma a evitar chamadas infinitas. Como exemplo, veja uma procedure recursiva que conta de 0 até 10. Note como cada chamada verifica se já é hora de interromper a cadeia: // uma procedure recursiva que conta de 0 até 10 procedure Contar(valor: Integer); begin // vamos exibir o valor atual ShowMessage(IntToStr(valor)); // é hora de parar? if valor = 10 then ShowMessage('Terminei') else begin // chama a si própria (note que aumentamos o valor atual em 1) Inc(valor); Contar(valor); end; end; // vamos chamar a procedure pela primeira vez // a partir do Click de um botão procedure TForm1.Button1Click(Sender: TObject); begin // chama a função recursiva fornecendo o valor inicial Contar(0); end; Execute este código e veja o resultado. Observe que a cada chamada recursiva nós incrementamos a variável de controle. Ela é a responsável por evitar que chamadas infinitas sejam feitas. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Classes e Componentes ::: JTree |
Java Swing - Como obter o texto do ítem selecionado na JTreeQuantidade de visualizações: 11181 vezes |
Nesta dica veremos como usar o método getLastSelectedPathComponent() da classe JTable do Java Swing para obter o texto do item (nó) selecionado na árvore. Veja como fazemos um cast (conversão) para um objeto da classe DefaultMutableTreeNode antes de podermos acessar o nó retornado. O resultado será igual ao que temos na imagem abaixo: ![]() Veja o código Java Swing completo para este exemplo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.tree.*; public class Estudos extends JFrame{ JTree arvore; public Estudos(){ super("Exemplo de uma JTree simples"); DefaultMutableTreeNode raiz = montarArvore(); arvore = new JTree(raiz); JButton btn = new JButton("Obter Texto"); btn.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ if(!arvore.isSelectionEmpty()){ DefaultMutableTreeNode no = (DefaultMutableTreeNode) arvore.getLastSelectedPathComponent(); JOptionPane.showMessageDialog(null, "Texto do ítem selecionado: " + no.toString(), "JTree", JOptionPane.INFORMATION_MESSAGE); } } } ); Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(arvore); c.add(scrollPane); c.add(btn); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private DefaultMutableTreeNode montarArvore(){ DefaultMutableTreeNode raiz = new DefaultMutableTreeNode("Cidades"); DefaultMutableTreeNode regiao = new DefaultMutableTreeNode("Região"); regiao.add(new DefaultMutableTreeNode("Centro-Oeste")); regiao.add(new DefaultMutableTreeNode("Norte")); regiao.add(new DefaultMutableTreeNode("Sul")); raiz.add(regiao); return raiz; } } |
VBA ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter números em strings em VBA usando a função CStr()Quantidade de visualizações: 450 vezes |
A função CStr() do VBA pode ser usada quando queremos converter valores numéricos do tipo Integer ou Double em uma string. Em geral isso é necessário quando queremos aplicar funções de strings a valores numéricos, por exemplo, testar se um determinado dígito faz parte de um número. Veja um trecho de código no qual usamos a função CStr() para converter valores Integer e Double em string e mostrar o resultado: ' Procedimento para converter Integer e Double em string Sub ConverterNumeroString() ' vamos declarar duas variáveis numéricas Dim codigo As Integer Dim preco As Double codigo = 58 preco = 32.15 Dim resultado As String resultado = "O código do produto é: " + CStr(codigo) + _ " e o preço é: " + CStr(preco) ' mostramos o resultado MsgBox resultado End Sub Ao executar este código VBA nós teremos o seguinte resultado: O código do produto é: 58 e o preço é: 32,15 |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como classificar um array em ordem crescente usando o método sort() da classe Arrays do JavaQuantidade de visualizações: 26832 vezes |
Nesta dica mostrarei como podemos usar o método sort() da classe Arrays da linguagens Java para ordenar um vetor de inteiros em ordem crescente. A assinatura do método sort() que usaremos é aquela que recebe apenas um argumento, ou seja, o array a ser ordenado. Note que a implementação de ordenação usada pelo método sort() é a ordenação quicksort, considerada uma das mais rápidas nos dias atuais. Veja o código completo para o exemplo: package estudos; import java.util.*; public class Estudos{ public static void main(String[] args){ // vamos declarar e construir um vetor de 5 inteiros int[] valores = new int[5]; // inicializa os elementos do array valores[0] = 23; valores[1] = 65; valores[2] = 2; valores[3] = 87; valores[4] = 34; // exibe os valores dos elementos do array // usando o laço for melhorado System.out.println("Elementos na ordem original:"); for(int valor : valores){ System.out.print(valor + " "); } // ordena os valores em ordem crescente Arrays.sort(valores); // exibe os valores dos elementos do array // usando o laço for melhorado System.out.println("\n\nElementos classificados em ordem crescente:"); for(int valor : valores){ System.out.print(valor + " "); } System.out.println("\n\n"); System.exit(0); } } Ao executarmos este código Java nós teremos o seguinte resultado: Elementos na ordem original: 23 65 2 87 34 Elementos classificados em ordem crescente: 2 23 34 65 87 |
Nossas 20 dicas & truques de programação mais populares |
PHP - Programação Orientada a Objetos em PHP - Como passar um objeto de uma classe para uma função PHP |
Você também poderá gostar das dicas e truques de programação abaixo |
QGIS - Como retornar o título do projeto do QGIS usando PyQGIS e a função title() da classe QgsProject Java - Como remover um elemento de uma determinada posição do ArrayList do Java usando o método remove() |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |