Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística

Exercício Resolvido de Java - Escreva um programa Java que pede um número inteiro e informa se o número informado é um número de Armstrong

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

Um número é chamado de número de Armstrong quando a soma de cada um dos seus dígitos, elevado à quantidade de dígitos do número, equivale ao próprio número. Por exemplo, 153 e 93084 são números de Armstrong, já que:

153 = 13 + 53 + 33
93084 = 95 + 35 + 05 + 85 + 45

Escreva um programa Java que pede para o usuário informar um número inteiro e informa se o número informado é um número de Armstrong ou não. Seu código deve usar apenas os operadores matemáticos disponíveis na linguagem Java.

Sua saída deverá ser parecida com:

Informe um número inteiro: 153
O número informado é um número de Armstrong
Resposta/Solução:

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[]){ 
    // para efetuar a leitura da entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar um número
    System.out.print("Informe um número inteiro: ");
    int numero = Integer.parseInt(entrada.nextLine());
    
    // o primeiro passo é obter a quantidade de dígitos que o número informado
    // possui
    int quant_digitos = 0;
    int temp = numero;
    while(temp != 0) {
      quant_digitos = quant_digitos + 1;
      temp = temp / 10;
    }
    
    // agora efetuamos o cálculo que verifica se o número é um número
    // de Armstrong ou não
    int resto, soma = 0;
    temp = numero;
    while(temp > 0){
      resto = temp % 10;
      soma = soma + (int)(Math.pow(resto, quant_digitos));
      temp = temp / 10;
    }

    if(soma == numero){
      System.out.println("O número informado é um número de Armstrong");
    }
    else{
      System.out.println("O número informado não é um número de Armstrong");
    }
  } 
}



Ruby ::: Dicas & Truques ::: Arquivos e Diretórios

Como criar um diretório em Ruby usando a função FileUtils.mkdir()

Quantidade de visualizações: 8204 vezes
O trecho de código a seguir mostra como criar um diretório em Ruby usando o método mkdir() da classe FileUtils. Esta função recebe uma string contendo o nome e caminho do diretório a ser criado.

Veja o código Ruby completo para o exemplo:

require "fileutils"

# nome e caminho do diretório a ser criado
diretorio = "C:\\estudos_ruby\\escola"

# cria o diretório
if FileUtils.mkdir diretorio
  puts "Diretório criado com sucesso"
else
  puts "Não foi possível criar o diretório"
end

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

Diretório criado com sucesso

Veja que, se o diretório não puder ser criado, a seguinte mensagem de erro será exibida:

C:/ruby/lib/ruby/1.8/fileutils.rb:243:in `mkdir': File 
  exists - estudos (Errno::
EEXIST)
  from C:/ruby/lib/ruby/1.8/fileutils.rb:243:in `fu_mkdir'
  from C:/ruby/lib/ruby/1.8/fileutils.rb:172:in `mkdir'
  from C:/ruby/lib/ruby/1.8/fileutils.rb:171:in `each'
  from C:/ruby/lib/ruby/1.8/fileutils.rb:171:in `mkdir'
  from estudos.rb:7



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Um programa que calcule e mostre a tabuada de multiplicação de um número digitado pelo usuário (entre 1 e 10)

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

Escreva um programa Java que usa o laço for para calcular a tabuada de multiplicação para um número digitado pelo usuário. Este número deve estar entre 1 e 10 (inclusive).

Sua saída deve ser parecida com:

Informe um valor entre 1 e 10: 8

A tabuada do número 8 é:

8 X 1 = 8
8 X 2 = 16
8 X 3 = 24
8 X 4 = 32
8 X 5 = 40
8 X 6 = 48
8 X 7 = 56
8 X 8 = 64
8 X 9 = 72
8 X 10 = 80
Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
    
    // vamos solicitar que o usuário informe um inteiro entre 1 e 10
    System.out.print("Informe um valor entre 1 e 10: ");
    int numero = Integer.parseInt(entrada.nextLine());
    
    // vamos verificar se o valor está na faixa desejada
    if((numero < 1) || (numero > 10)){
      System.out.println("O número deve ser entre 1 e 10");
    }
    else{
      // o número é válido....vamos exibir a tabuada
      System.out.println("\nA tabuada do número " + numero + " é:\n");
      
      for(int i = 1; i <= 10; i++){
        System.out.println(numero + " X " + i + " = " + (numero * i));  
      }  
    }
    
    System.out.println("\n");
  }
}



PHP ::: Dicas & Truques ::: Strings e Caracteres

Como transformar uma string em letras minúsculas em PHP usando a função strtolower()

Quantidade de visualizações: 8 vezes
A função strtolower() do PHP pode ser usada quando queremos converter uma palavra, frase ou texto para letras minúsculas.

Veja um exemplo de seu uso:

<?php
  // vamos definir a codificação como iso-8859-1
  ini_set('default_charset', "iso-8859-1");
  
  // vamos criar uma string
  $frase = "PHP? Eu gosto de PHP";
  echo "A frase original é: " . $frase;
  
  // agora vamos converter a frase para letras
  // minúsculas
  $frase_minusculas = strtolower($frase);
  echo "<br>Em letras minúsculas: " . $frase_minusculas;
?>

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

A frase original é: PHP? Eu gosto de PHP
Em letras minúsculas: php? eu gosto de php

Ao executar este código no PHP 8, Windows 10 e codificação do arquivo em ANSI, o resultado da função strtolower() é o esperado, mas somente sem usar acentos e caracteres especiais. Veja:

<?php
  // vamos definir a codificação como iso-8859-1
  ini_set('default_charset', "iso-8859-1");
  
  // vamos criar uma string
  $frase = "JAVA? NÃO! É DE PHP QUE EU GOSTO";
  echo "A frase original é: " . $frase;
  
  // agora vamos converter a frase para letras
  // minúsculas
  $frase_minusculas = strtolower($frase);
  echo "<br>Em letras minúsculas: " . $frase_minusculas;
?>

Ao executarmos o código novamente nós teremos a seguinte saída:

A frase original é: JAVA? NÃO! É DE PHP QUE EU GOSTO
Em letras minúsculas: java? nÃo! É de php que eu gosto

Note que as letras acentuadas não foram convertidas para letras minúsculas. Isso aconteceu porque os caracteres acentuados são tratados como caracteres de múltiplos bytes, ou seja, multi-byte chars. A saída, nesse caso, e no PHP 8 (e acredito mais recentes), é usar a função mb_strtolower(). Veja:

<?php
  // vamos definir a codificação como iso-8859-1
  ini_set('default_charset', "iso-8859-1");
  
  // vamos criar uma string
  $frase = "JAVA? NÃO! É DE PHP QUE EU GOSTO";
  echo "A frase original é: " . $frase;
  
  // agora vamos converter a frase para letras
  // minúsculas
  $frase_minusculas = mb_strtolower($frase);
  echo "<br>Em letras minúsculas: " . $frase_minusculas;
?>

Execute o código novamente e verá que o resultado agora está correto:

A frase original é: JAVA? NÃO! É DE PHP QUE EU GOSTO
Em letras minúsculas: java? não! é de php que eu gosto

Agora você já sabe o primeiro passo para resolver problemas de acentuação no PHP. Bons estudos.


C# ::: Dicas & Truques ::: Strings e Caracteres

Como remover os espaços no início de uma string C# usando o TrimStart() da classe String

Quantidade de visualizações: 7279 vezes
Nesta dica mostrarei como usar a função TrimStart() da classe String do C# para remover os espaços no início de uma palavra, frase ou texto. Esta operação é importante quando estamos lidando com dados informados pelos usuário de nossas aplicações C#.

Veja o código completo para o exemplo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string texto = "  temos espaços no início e fim   ";
      Console.WriteLine(texto);

      // remove os espaços no início da string
      texto = texto.TrimStart();

      Console.WriteLine("." + texto + ".");

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

  temos espaços no início e fim
.temos espaços no início e fim   .



Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural

Como calcular o Índice de Esbeltez de um pilar em Python - Python para Engenharia Civil e Cálculo Estrutural

Quantidade de visualizações: 332 vezes


O índice de esbeltez de um pilar, representado pela letra grega &#955; (lambda) é uma relação que mede a altura do pilar em relação à sua largura ou seção transversal. Esse índice é usado para avaliar a suscetibilidade de um pilar à flambagem, que é um tipo de falha estrutural que pode ocorrer em pilares esbeltos sob compressão.

Segundo a NBR 6118, 15.8.2, os pilares devem ter índice de esbeltez menor ou igual a 200 (&#955; &#8804; 200). Apenas no caso de postes com força normal menor que 0,10 fcd x Ac, o índice de esbeltez pode ser maior que 200.

O índice de esbeltez é a razão entre o comprimento de flambagem e o raio de giração, nas direções a serem consideradas. De acordo com o comprimento de flambagem, os pilares classificam-se como: curto, se &#955; < 35; medianamente esbelto, se 35 < &#955; < 90; esbelto, se 90 < &#955; < 140; e muito esbelto, se 140 < &#955; < 200.

A fórmula para o cálculo do índice de esbeltez pode ser definida como:

\[\lambda = 3,46 \cdot \frac{le}{h} \]

Onde:

&#955; = número adimensional representando o índice de esbeltez ao longo da direção escolhida (x ou y);

le = algura do pilar, ou seja, o comprimento do pilar em centímetros.

h = dimensão escolhida (x ou y) em centímetros.

De acordo com a norma NBR 6118 (ABNT, 2014), se o índice de esbeltez na direção escolhida for menor que 35, nós não precisamos considerar os efeitos locais de 2ª ordem.

Vamos agora ao código Python? Pediremos ao usuário para informar o comprimento (altura) do pilar em metros, as dimensões nas direções x e y e mostraremos os índices de esbeltez nas direções x e y do pilar com as respectivas anotações da necessidade ou não da consideração dos efeitos locais de 2ª ordem. Veja:

# método principal
def main():
  # vamos pedir o comprimento do pilar em metros (pé direito)
  le = float(input("Informe o comprimento do pilar (em metros): "))
  # vamos converter o comprimento em metros para centímetros
  le = le * 100.0

  # vamos pedir as dimensões do pilar
  hx = float(input("Informe a dimensão do pilar na direção x (em cm): "))
  hy = float(input("Informe a dimensão do pilar na direção y (em cm): "))

  # agora vamos calcular o índice de esbeltez na direção x
  lambda_x = 3.46 * (le / hx)

  # agora vamos calcular o índice de esbeltez na direção y
  lambda_y = 3.46 * (le / hy)

  # e mostramos os resultados
  print("\nO índice de esbeltez na direção x é: {0}".format(round(lambda_x, 2)))

  # precisamos considerar os efeitos locais de segunda ordem na direção x?
  if lambda_x < 35:
    print("Não considerar os efeitos locais de 2ª ordem na direção x")
  else:
    print("Considerar os efeitos locais de 2º ordem na direção x")

  print("\nO índice de esbeltez na direção y é: {0}".format(round(lambda_y, 2)))

  # precisamos considerar os efeitos locais de segunda ordem na direção y?
  if lambda_y < 35:
    print("Não  considerar os efeitos locais de 2ª ordem na direção y")
  else:
    print("Considerar os efeitos locais de 2ª ordem na direção y")

if __name__== "__main__":
  main()

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

Informe o comprimento do pilar (em metros): 2.88
Informe a dimensão do pilar na direção x (em cm): 40
Informe a dimensão do pilar na direção y (em cm): 19

O índice de esbeltez na direção x é: 24.91
Não considerar os efeitos locais de 2ª ordem na direção x

O índice de esbeltez na direção y é: 52.45
Considerar os efeitos locais de 2ª ordem na direção y


C# ::: Namespace System.Drawing ::: Image

Gráficos C# Windows Forms - Como usar a classe Image em suas aplicações C#

Quantidade de visualizações: 6496 vezes
A classe Image, do namespace System.Drawing (no assemply System.Drawing.dll) é uma classe abstrata de base que fornece funcionalidades para as classes derivadas Bitmap e Metafile (que são classes concretas e sealed, ou seja, não podem ter suas funcionalidades herdadas por outras classes).

Por ser uma classe abstrata, não podemos criar novas instâncias de Image (usando new()). Em vez disso nós a usamos apenas para chamar seus métodos estáticos ou como referência para as classes derivadas. Veja um trecho de código no qual carregamos um bitmap e o exibimos em um PictureBox:

private void button2_Click_1(object sender, EventArgs e){
  try{
    // vamos carregar o bitmap a partir de um diretório
    Image imagem = new Bitmap(@"C:\estudos_csharp_wf\logo.bmp", true);
    // vamos exibir a imagem no PictureBox
    pictureBox1.Image = imagem;
  }
  catch(ArgumentException ae){
    MessageBox.Show("Houve um erro ao carregar a imagem: " + 
      ae.Message.ToString());
  }
}

Veja que declaramos uma Image e a usamos como referência a um Bitmap. É claro que podemos perfeitamente trocar a linha:

Image imagem = new Bitmap(@"C:\estudos_csharp_wf\logo.bmp", true);

por:

Bitmap imagem = new Bitmap(@"C:\estudos_csharp_wf\logo.bmp", true);

O código compila normalmente, mas aí perdemos todo o poder que o polimorfismo nos entrega. Sempre que possível, devemos programar em cima das interfaces, superclasses e classes abstratas.

Além dos métodos estáticos, a classe Image fornece várias propriedades. Veja uma modificação do exemplo anterior no qual obtemos a largura e a altura da imagem que foi carregada:

private void button2_Click_1(object sender, EventArgs e){
  try{
    // vamos carregar o bitmap a partir de um diretório
    Image imagem = new Bitmap(@"C:\estudos_csharp_wf\logo.bmp", true);
    // vamos exibir a imagem no PictureBox
    pictureBox1.Image = imagem;

    // vamos exibir a largura e altura da imagem
    MessageBox.Show("A imagem carregada possui a largura de " + imagem.Width +
      " pixels e altura de " + imagem.Height + " pixels.");
  }
  catch(ArgumentException ae){
    MessageBox.Show("Houve um erro ao carregar a imagem: " + 
      ae.Message.ToString());
  }
}

Depois de carregada a imagem você verá uma mensagem parecida com:

A imagem carregada possui a largura de 80 pixels e altura de 50 pixels.


PHP ::: PHP + MySQL ::: MySQL (mysql)

Como criar um arquivo de conexão PHP + MySQL e incluí-lo nas demais páginas PHP do seu projeto - Atualizado - Somente PHP 5.6 e anteriores

Quantidade de visualizações: 13340 vezes
É sempre uma boa idéia centralizar todos os parâmetros da conexão PHP + MySQL em apenas um arquivo e usar require() para incluí-lo nas demais páginas da aplicação. Se fizermos isso, não precisaremos efetuar alterações em todas as páginas caso o nome de usuário ou senha da conexão seja alterada.

1 - Comece criando o arquivo PHP que contém os parâmetros de conexão. Uma boa idéia é usar um método que retorne uma conexão com o banco de dados. Veja o código para conexao.php:

<?
  function obter_conexao_php_mysql(){
    // Parâmetros de conexão
    $server = "localhost";
    $usuario = "root";
    $senha = "osmar1234";
    $base = "estudos";
      
    // Tenta efetuar a conexão
    $conexao = mysql_connect($server, $usuario, $senha);
 
    // Testa se a conexão foi efetuada com sucesso
    if(!$conexao)
      die('Falha ao conectar: ' . mysql_error());
   
    // conexão efetuada com sucesso. Podemos definir qual
    // base de dados será usada
    $db_selected = mysql_select_db($base, $conexao);
     
    // testa se a base foi selecionada com sucesso.
    if(!$db_selected)
      die("Falha ao selecionar o banco: " . mysql_error());
       
    return $conexao;
  }
   
  function fechar_conexao_php_mysql($conn){
    mysql_close($conn);
  }
?>

Agora este arquivo de conexão pode ser importado para as demais página da seguinte forma:

<?
  require("conexao.php");
   
  // obtém a conexão com o banco MySQL
  $conexao = obter_conexao_php_mysql();
   
  /*
    Outros códigos de manipulação dos dados
    no banco de dados vão aqui
  */
   
  // fecha a conexão
  fechar_conexao_php_mysql($conexao);
?>

Atenção usuários Windows + XAMPP: Se você estiver recebendo a mensagem abaixo, certifique-se de que a linha

extension=php_mysql.dll

Está descomentada no seu PHP.ini.

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in conexao.php:10 Stack trace: #0 conexao.php(32): obter_conexao_php_mysql() #1 {main} thrown in conexao.php on line 10

Se você estiver usando uma versão do PHP superior a 5.6, este erro também ocorrerá e você terá que voltar sua aplicação para um PHP mais anterior ou mudar seus códigos de conexão para PDO ou MySQL Improved Extension (mysqli).


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

Como adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid do Delphi e tratar seu evento OnEditButtonClick

Quantidade de visualizações: 12196 vezes
Em algumas situações gostaríamos de exibir um botão do tipo ellipsis (...) nas células de uma determinada coluna do TDBGrid. Este botão é exibido à direita da célula de edição do DBGrid e seu evento OnEditButtonClick pode ser disparado por meio da combinação Ctrl+Enter ou um click do mouse.

Um dos usos mais frequentes do botão ellipsis é quando queremos chamar um formulário de pesquisa ou mais detalhes sobre o conteúdo atual da célula que está sendo editada.

Siga os passos abaixo para adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid:

a) Selecione a coluna desejada na lista Columns;

b) Defina o valor cbsEllipsis para sua propriedade ButtonStyle;

c) Escreva um gerenciador de eventos para o evento OnEditButtonClick do DBGrid. Veja no trecho de código a seguir como clicar no botão e exibir o conteúdo da célula (note que coloquei o botão ellipsis em uma coluna cujos células exibiam o valor do campo id de uma tabela livros):

procedure TForm3.DBGrid1EditButtonClick(Sender: TObject);
begin
  ShowMessage('O valor da célula que contém o botão é: ' +
    DBGrid1.SelectedField.AsString);
end;

Ao executar este código bastará entrar na célula e colocá-la em modo de edição. Automaticamente o botão ellipsis (...) será exibido. Clique no mesmo e verá uma mensagem parecida com:

"O valor da célula que contém o botão é: 5."

Caso queira que o botão ellipsis seja visível nas células o tempo todo, basta alterar o valor da opção dgAlwaysShowEditor para True. Esta opção é parte da propriedade Options do DBGrid.

Esta dica foi escrita e testada no Delphi 2009.


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

Como calcular raiz quadrada em C usando a função sqrt()

Quantidade de visualizações: 6725 vezes
A raiz quadrada de um número pode ser obtida em C por meio da função sqrt(). Esta função recebe um valor double, ou seja, qualquer tipo que possa ser convertido em double e retorna um valor double. Veja o exemplo:

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

int main(int argc, char *argv[])
{
  int numero = 9;

  printf("A raiz quadrada de %d é %f", numero,
    sqrt(numero));

  printf("\n\n");
  system("pause");
  return 0;
}

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

A raiz quadrada de 9 é 3.

É importante observar que não é possível obter a raiz quadrada de um número negativo. Caso seu código tente fazer isso, o resultado poderá ser imprevisível.

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

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



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