Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Como testar se um número é um quadrado perfeito em Java - Solução usando sqrt() e floor() - Desafio de Programação Resolvido em Java

Quantidade de visualizações: 944 vezes
Pergunta/Tarefa:

Escreva um programa Java contendo um método testarQuadradoPerfeito() que recebe um número inteiro e devolve um valor boolean informando se o número passado como argumento para a função é um quadrado perfeito. Seu código poderá usar qualquer técnica de resolução, porém, a solução apresentada por nós se apoia no uso das funções Math.sqrt() e Math.floor().

O que são os números quadrados perfeitos?

A definição de um número quadrado perfeito pode ser entendida como: um número natural (inteiro positivo) cuja raiz quadrada é, também, um número natural (inteiro positivo).

Em outras palavras, é um número que, ao extrair a raiz quadrada, o resultado é exato.

Assim temos: 1, 4, 9, 16, 25, 36, 49, 64, 81, 100...

Sua saída deverá ser parecida com:

Informe um valor inteiro: 64
O número 64 é um quadrado perfeito
Informe um valor inteiro: 28
O número 28 não é um quadrado perfeito
Informe um valor inteiro: 16
O número 16 é um quadrado perfeito
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar um valor inteiro
    System.out.print("Informe um valor inteiro: ");
    int valor = Integer.parseInt(entrada.nextLine());
    
    // vamos testar se o número informado é um quadrado perfeito
    if(testarQuadradoPerfeito(valor)){
      System.out.println("O número " + valor + " é um quadrado perfeito");
    }
    else{
      System.out.println("O número " + valor + " não é um quadrado perfeito");
    }
  }
  
  public static boolean testarQuadradoPerfeito(int numero){   
    // primeiro calculamos a rais quadrada do número recebido
    double raiz_quadrada = Math.sqrt(numero);   
    
    // agora testamos se a raiz quadrada do número menos o arredondamento
    // dele para baixo é igual a 0
    return ((raiz_quadrada - Math.floor(raiz_quadrada)) == 0);   
  }   
}


Link para compartilhar na Internet ou com seus amigos:

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

Como aplicar cores alternadas às colunas de um TDBGrid do Delphi (efeito zebrinha)

Quantidade de visualizações: 9357 vezes
Em algumas situações gostaríamos de aplicar o efeito zebrinha, ou seja, aplicar cores alternadas às colunas de um controle TDBGrid. Esta técnica é muito útil quando temos grids com várias colunas e queremos facilitar a visualização dos dados por parte dos usuários.

A forma mais comum de se aplicar cores alternadas às colunas do DBGrid é por meio do evento OnDrawColumnCell. Veja o trecho de código abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  grid: TDBGrid;
begin
  // obtém um referência ao DBGrid
  grid := sender as TDBGrid;

  // o número da coluna é par?
  if Odd(DataCol) then
    grid.Canvas.Brush.Color := clWhite
  else
    grid.Canvas.Brush.Color := clYellow;

  // vamos terminar de colorir a célula
  grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Execute este código e verá que a primeira coluna é pintada de branco, a segunda de amarelo, a terceira de branco e assim por diante. Note que neste código eu não tratei a seleção de células, na qual a cor do texto se iguala ao branco do fundo da célula. Veja mais dicas nesta seção para saber como realizar esta tarefa você mesmo.

Fique atento ao fato de que este código aplica as cores alternadas às colunas mesmo se estas forem colunas persistentes com cores já definidas por meio do Object Inspector.

Esta dica foi escrita e testada no Delphi 2009.


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

R para Matemática e Estatística - Como calcular desvio padrão usando a função sd() da linguagem R

Quantidade de visualizações: 1544 vezes
Em Matemática e Estatística, o Desvio Padrão (em inglês: Standard Deviation) é uma medida de dispersão, ou seja, é uma medida que indica o quanto um conjunto de dados é uniforme. Quando o desvio padrão é baixo, isso quer dizer que os dados do conjunto estão mais próximos da média.

Como calcular o desvio padrão de um conjunto de dados? Vamos começar analisando a fórmula mais difundida na matemática e na estatística:

\[\sigma = \sqrt{ \frac{\sum_{i=1}^N (x_i -\mu)^2}{N}}\]

Onde:

a) __$\sigma__$ é o desvio;
b) __$x_i__$ é um valor qualquer no conjunto de dados na posição i;
c) __$\mu__$ é a média aritmética dos valores do conjunto de dados;
d) N é a quantidade de valores no conjunto.

O somatório dentro da raiz quadrada nos diz que devemos somar todos os elementos do conjunto, desde a posição 1 até a posição n, subtrair cada valor pela média do conjunto e elevar ao quadrado. Obtida a soma, nós a dividimos pelo tamanho do conjunto.

Porém, se usarmos a linguagem R, todos estes cálculos se tornam desnecessários, pois temos a função sd(), que recebe uma lista de valores numéricos e retorna o desvio padrão correspondente. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

> valores <- c(10, 30, 90, 30) [ENTER]
> desvio_padrao <- sd(valores) [ENTER]
> paste("O desvio padrão é:", desvio_padrao) [ENTER]
[1] "O desvio padrão é: 34.6410161513775"
>

Ao executar estes comandos R nós teremos o seguinte resultado:

O desvio padrão é: 34.6410161513775

Note que a função sd() da linguagem R retorna o Desvio Padrão Populacional, e não o Desvio Padrão Amostral.


C ::: Estruturas de Dados ::: Lista Ligada Simples

Estrutura de Dados em C - Como inserir nós no final de uma lista singularmente ligada em C

Quantidade de visualizações: 7696 vezes
Esta dica mostra como inserir nós no final de uma lista singularmente ligada. A estrutura usada para representar cada nó é a seguinte:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

struct No{
  int valor;
  struct No *proximo;
};

Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no final quanto a exibição dos nós são feitas usando funções. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

// estrutura Nó
struct No{
  int valor;
  struct No *proximo;
};
// fim da estrutura Nó

// função que permite exibir os valores de
// todos os nós da lista
void exibir(struct No *n){
  if(n != NULL){
    do{
      printf("%d\n", n->valor);
      n = n->proximo;
    }while(n != NULL);
  }
  else
    printf("A lista esta vazia\n\n");
}

// função que permite inserir nós no
// final da lista.
// veja que a função recebe o valor a ser
// armazenado em cada nó e um ponteiro para o
// início da lista. A função retorna um
// ponteiro para o início da lista
struct No *inserir_final(struct No *n, int v){
  // reserva memória para o novo nó
  struct No *novo = (struct No*)malloc(sizeof(struct No));
  novo->valor = v;

  // verifica se a lista está vazia
  if(n == NULL){
    // é o primeiro nó...não deve apontar para
    // lugar nenhum
    novo->proximo = NULL;
    return novo; // vamos retornar o novo nó como sendo o início da lista
  }
  else{ // não está vazia....vamos inserir o nó no final
    // o primeiro passo é chegarmos ao final da lista
    struct No *temp = n; // vamos obter uma referência ao primeiro nó
    // vamos varrer a lista até chegarmos ao último nó
    while(temp->proximo != NULL){
      temp = temp->proximo;
    }
    // na saída do laço temp aponta para o último nó da lista
  
    // novo será o último nó da lista...o campo próximo dele deve
    // apontar para NULL
    novo->proximo = NULL;
    // vamos fazer o último nó apontar para o nó recém-criado
    temp->proximo = novo;
    return n; // vamos retornar o início da lista intacto
  }
}

int main(int argc, char *argv[])
{
  // declara a lista
  struct No *inicio = NULL;

  // vamos inserir quatro valores no final
  // da lista
  inicio = inserir_final(inicio, 45);
  inicio = inserir_final(inicio, 3);
  inicio = inserir_final(inicio, 98);
  inicio = inserir_final(inicio, 47);

  // vamos exibir o resultado
  exibir(inicio);

  system("pause");
  return 0;
}



C# ::: Dicas & Truques ::: Arquivos e Diretórios

Apostila C# para iniciantes - Como listar todos os arquivos de um diretório usando C#

Quantidade de visualizações: 28624 vezes
Nesta dica eu mostro como é possível usar o método GetFiles() da classe Directory para listar todos os arquivos de um determinado diretório. Note como usei o caractere "*" para informar o padrão de arquivos a serem exibidos.

Veja o código completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;
using System.IO;

namespace Estudos{
  class Program{
    static void Main(string[] args) {
      string diretorio = @"C:\estudos_dart";
      string padrao = "*";

      if (args.Length > 0) {
        diretorio = args[0];
      }
      if (args.Length > 1) {
        padrao = args[1];
      }

      string[] arquivos = Directory.GetFiles(diretorio,
        padrao);

      foreach (string arquivo in arquivos) {
        Console.WriteLine(arquivo);
      }
    }
  }
}

Ao executar este código nós teremos uma saída parecida com:

C:\estudos_dart\condicional_if_else.dart
C:\estudos_dart\DICA.txt
C:\estudos_dart\laco_do_while.dart
C:\estudos_dart\laco_for.dart
C:\estudos_dart\laco_while.dart
C:\estudos_dart\primeira.dart


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

Como usar a propriedade Alignment da classe TColumn para alinhar o conteúdo das células do TDBGrid do Delphi

Quantidade de visualizações: 11486 vezes
O conteúdo de cada coluna, ou seja, todas as células de uma determinada coluna, pode ser alinhado por meio da propriedade Alignment da classe TColumn. Esta propriedade aceita um de três valores (pertencentes à enumeração Classes.TAlignment):

taLeftJustify - o texto é alinhado à esquerda;

taCenter - o texto é alinhado ao centro;

taRightJustify - o texto é alinhado à direita.

O valor para esta propriedade pode ser definido em tempo de design ou execução. Para definir o alinhamento do conteúdo de uma coluna em tempo de design, basta clicar com o botão direito no DBGrid e escolher a opção Columns Editor. Em seguida clique na coluna desejada e vá em sua propriedade Alignment no Object Inspector.

Em tempo de execução podemos definir o alinhamento para um determinada coluna do DBGrid usando o seguinte trecho de código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos alinhar ao centro o conteúdo das células da
  // primeira coluna
  DBGrid1.Columns[0].Alignment := TAlignment.taCenter;
end;

Veja que neste trecho de código eu usei TAlignment.taCenter. Esta é uma boa forma de indicar no código de onde o valor taCenter está vindo. No entanto, o Delphi permite que se omita o nome da enumeração TAlignment.

Esta dica foi escrita e testada no Delphi 2009.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

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á 60 usuários muito felizes estudando em nosso site.