Você está aqui: Cards de |
||
|
||
|
|
||
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como alocar memória dinâmica em C usando a função malloc()Quantidade de visualizações: 29501 vezes |
A função malloc() é usada em C para alocarmos um bloco de memória. Esta função recebe a quantidade de bytes a serem alocados e retorna um ponteiro do tipo void (genérico) para o início do bloco de memória obtido. Veja sua assinatura:void *malloc(size_t size); Se a memória não puder se alocada, um ponteiro nulo (NULL) será retornado. É importante se lembrar de alguns conceitos antes de usar esta função. Suponhamos que você queira alocar memória para um inteiro. Você poderia ter algo assim: // aloca memória para um int ponteiro = malloc(4); Embora este código esteja correto, não é um boa idéia assumir que um inteiro terá sempre 4 bytes. Desta forma, é melhor usar o operador sizeof() para obter a quantidade de bytes em um inteiro em uma determinada arquitetura. Veja: // aloca memória para um int ponteiro = malloc(sizeof(int)); Eis o código completo para um aplicativo C que mostra como alocar memória para um inteiro e depois atribuir e obter o valor armazenado no bloco de memória alocado:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// ponteiro para uma variável do tipo inteiro
int *ponteiro;
// aloca memória para um int
ponteiro = malloc(sizeof(int));
// testa se a memória foi alocada com sucesso
if(ponteiro)
printf("Memoria alocada com sucesso.\n");
else
printf("Nao foi possivel alocar a memoria.\n");
// atribui valor à memória alocada
*ponteiro = 45;
// obtém o valor atribuído
printf("Valor: %d\n\n", *ponteiro);
// libera a memória
free(ponteiro);
system("PAUSE");
return 0;
}
Uma aplicação interessante da função malloc() é quando precisamos construir uma matriz dinâmica. Veja como isso é feito no código abaixo:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
// quantidade de elementos na matriz
int quant = 10;
// ponteiro para o bloco de memória
int *ponteiro;
// aloca memória para uma matriz de inteiros
ponteiro = malloc(quant * sizeof(int));
// testa se a memória foi alocada com sucesso
if(ponteiro)
printf("Memoria alocada com sucesso.\n");
else{
printf("Nao foi possivel alocar a memoria.\n");
exit(1);
}
// atribui valores aos elementos do array
for(i = 0; i < quant; i++){
ponteiro[i] = i * 2;
}
// exibe os valores
for(i = 0; i < quant; i++){
printf("%d ", ponteiro[i]);
}
// libera a memória
free(ponteiro);
printf("\n\n");
system("PAUSE");
return 0;
}
|
Java ::: Classes e Componentes ::: JList |
Java Swing - Como obter a quantidade de itens em uma JList usando o método getSize() da interface ListModelQuantidade de visualizações: 9872 vezes |
|
Nesta dica mostrarei como podemos obter a quantidade de itens em uma JList por meio de uma chamada ao método getSize() da interface ListModel, responsável por gerenciar os itens da JList. Note que escrevi o exemplo abaixo sem usar nenhum editor GUI visual. Dessa forma fica mais fácil entender todas as partes que compoem uma aplicação Java Swing. Veja o código completo:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
JList lista;
public Estudos() {
super("A classe JList");
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));
// Cria os itens da lista
String nomes[] = {"Carlos", "Marcelo", "Fabiana",
"Carolina", "Osmar"};
// Cria a JList
lista = new JList(nomes);
// Um botão que permite obter a quantidade de itens
JButton btn = new JButton("Quantidade de Itens");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
int quant = lista.getModel().getSize();
JOptionPane.showMessageDialog(null,
"A lista contém " + quant + " itens");
}
}
);
// Adiciona a lista à janela
c.add(new JScrollPane(lista));
// Adiciona o botão à janela
c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
Delphi ::: Dicas & Truques ::: Data e Hora |
Como adicionar ou subtrair meses de uma data em Delphi usando a função IncMonth()Quantidade de visualizações: 22114 vezes |
|
Em algumas situações precisamos adicionar ou subtrair meses de uma determinada data. Em Delphi isso pode ser feito com o auxílio da função IncMonth() da unit DateUtils. Este função aceita um TDateTime e a quantidade de meses que queremos acrescentar ao TDateTime fornecido como argumento. O retorno será um novo TDateTime com a quantidade de meses acrescida. Veja um trecho de código no qual adicionamos 2 meses à data atual:
procedure TForm1.Button1Click(Sender: TObject);
var
hoje: TDateTime;
begin
// não esqueça de adicionar DateUtils ao seus uses
// vamos obter a data de hoje
hoje := Now;
// vamos exibir a data de hoje
ShowMessage('Hoje é: ' + DateToStr(hoje));
// vamos adicionar 2 meses à data de hoje
hoje := IncMonth(hoje, 2);
// vamos exibir o resultado
ShowMessage('Daqui a 2 meses será: ' + DateToStr(hoje));
end;
É possível também usar a função IncMonth() para substrair meses de uma data. Para isso só precisamos fornecer uma quantidade negativa de meses. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
hoje: TDateTime;
begin
// não esqueça de adicionar DateUtils ao seus uses
// vamos obter a data de hoje
hoje := Now;
// vamos exibir a data de hoje
ShowMessage('Hoje é: ' + DateToStr(hoje));
// vamos subtrair 3 meses da data de hoje
hoje := IncMonth(hoje, -3);
// vamos exibir o resultado
ShowMessage('Há 3 meses era: ' + DateToStr(hoje));
end;O valor padrão para o segundo argumento de IncMonth() é 1. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Como calcular a soma, o produto, a diferença e o quociente de dois números inteiros informados pelo usuárioQuantidade de visualizações: 1796 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar dois número inteiros. Em seguida mostre a soma, o produto, a diferença e o quociente dois dois números informados. Sua saída deverá ser parecida com: Informe o primeiro número: 8 Informe o segundo número: 3 A soma dos números é: 11 O produto dos números é: 24 A diferença dos números é: 5 O quociente dos números é: 2.66667 Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String args[]){
// variáveis usadas na resolução do problema
int n1, n2, soma, produto, diferenca;
double quociente;
// vamos ler os dois números
Scanner leitura = new Scanner(System.in);
System.out.print("Informe o primeiro número: ");
n1 = Integer.parseInt(leitura.nextLine());
System.out.print("Informe o segundo número: ");
n2 = Integer.parseInt(leitura.nextLine());
// vamos somar os dois números
soma = n1 + n2;
// vamos calcular o produto
produto = n1 * n2;
// vamos calcular a diferença
diferenca = n1 - n2;
// vamos calcular o quociente
quociente = n1 / (n2 * 1.0);
// vamos mostrar os resultados
System.out.println("A soma dos números é: " + soma);
System.out.println("O produto dos números é: " + produto);
System.out.println("A diferenca dos números é: " + diferenca);
System.out.println("O quociente dos números é: " + quociente);
}
}
|
C# ::: Dicas & Truques ::: Arquivos e Diretórios |
Como testar se um diretório existe em C# usando a propriedade Exists da classe DirectoryInfoQuantidade de visualizações: 1 vezes |
|
Em algumas situações nós precisamos verificar se um diretório existe em C#, talvez para ler ou gravar dados neste arquivo. Isso pode ser feito por meio da propriedade Exists da classe DirectoryInfo. Esta propriedade retorna um valor true se o diretório existir e false em caso contrário. Veja o código completo para o exemplo:
using System;
using System.IO;
namespace Estudos {
class Principal {
static void Main(string[] args) {
// vamos criar uma nova instância da classe DirectoryInfo
DirectoryInfo dir = new DirectoryInfo(@"C:\estudos_csharp\imagens");
// vamos testar se o diretório existe
if (dir.Exists) {
Console.Write("Diretório existe");
}
else {
Console.Write("Diretório não existe");
}
Console.WriteLine("\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: O diretório existe. |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





