Desafios e Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a equação reduzida da reta em Java dados dois pontos pertencentes à reta

Quantidade de visualizações: 1074 vezes
Nesta dica de Java veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito.

Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem.

Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta:



Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código Java completo para esta tarefa:



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

Coordenada x do primeiro ponto: 5
Coordenada y do primeiro ponto: 5
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 2
Equação reduzida: y = -0,75x + 8,75

Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo:



temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem.

Link para compartilhar na Internet ou com seus amigos:

C ::: Dicas & Truques ::: Ponteiros, Referências e Memória

Como usar ponteiros void na linguagem C - Curso de Linguagem C para iniciantes

Quantidade de visualizações: 16395 vezes
Em dicas desta seção você aprendeu que é possível criar ponteiros para os mais diferentes tipos. Veja:

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

int *ponteiro_int;
float *ponteiro_float;
double *ponteiro_double;

Existe, porém, um tipo de ponteiro que pode ser usado com todos os tipos de dados existentes ou ainda a serem criados. Este tipo é conhecido como void, ou seja, um ponteiro genérico e pode ser declarado da seguinte forma:

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

void *ponteiro; // ponteiro genérico

Veja um trecho de código no qual usamos um ponteiro genéríco para apontar para variáveis de diferentes tipos:

----------------------------------------------------------------------
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>

int main(int argc, char *argv[])
{
  int valor = 20;
  float valor2 = 5.23;

  void *ponteiro; // ponteiro genérico

  ponteiro = &valor; // aponta para um inteiro
  printf("%d\n", *(int *)ponteiro);

  ponteiro = &valor2; // aponta para um float
  printf("%0.2f\n", *(float *)ponteiro);

  system("PAUSE");
  return 0;
}

Uma observação importante é a necessidade de uma conversão explícita (cast) no momento de desreferenciar um ponteiro genéríco. Neste caso ele precisa ser convertido para o tipo de ponteiro sendo usado no momento. Veja:

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

printf("%d\n", *(int *)ponteiro);

A parte (int *)ponteiro converte o ponteiro genérico em um ponteiro do tipo int e o símbolo * externo é usado para desreferenciar. Se essa conversão não for feita teremos um aviso e erro na maioria dos compiladores. Veja:

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

printf("%d\n", *ponteiro);

[Warning] dereferencing 'void *' pointer
invalid use of void expression  

Embora essa conversão seja necessária quando estamos desreferenciando um ponteiro genérico, podemos abrir mão dela na atribuição de um ponteiro genérico a um ponteiro de um tipo específico:

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

ponteiro = &valor; // aponta para um inteiro
int *ponteiro_int = ponteiro;
printf("%d\n", *ponteiro_int);

Para finalizar, saiba que as funções malloc() e calloc() retornam ponteiros void, ou seja, ponteiros genéricos que podem ser atribuídos a ponteiros de qualquer tipos. Neste caso, o ponteiro retornado por estas funções aponta para a primeira posição do bloco de memória requisitada.


PHP ::: Fundamentos da Linguagem ::: Estruturas de Controle

PHP para iniciantes - Como usar o laço for da linguagem PHP

Quantidade de visualizações: 30916 vezes
O laço for, ou loop for, ou laço PARA, é usado quando queremos executar um bloco de instruções um determinado número de vezes. Este laço é composto de três partes:

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

for(inicialização; teste; incremento/decremento){
  bloco de instruções
}

Na parte inicialização nós definimos o valor inicial da variável de controle. Na parte teste nós usamos o valor da variável de controle para testar a continuidade ou interrupção do laço. Finalmente, na parte incremento/decremento nós alteramos o valor da variável de controle para cima ou para baixo. Veja um exemplo:

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

<?
  for($i = 1; $i <= 10; $i++){
    echo $i . "<br>";
  }
?>

Este trecho de código vai mostrar o seguinte resultado:

1
2
3
4
5
6
7
8
9
10

O incremento/decremento da variável de controle não precisa ser necessariamente em 1. Podemos usar qualquer expressão. Veja um trecho de código que exibe os números pares de 0 à 10:

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

<?
  for($i = 0; $i <= 10; $i += 2){
    echo $i . "<br>";
  }
?>

Este código mostrará o seguinte resultado:

0
2
4
6
8
10

Observe que "$i += 2" é o mesmo que "$i = $i + 2".

Com exceção da parte de testes, podemos inserir múltiplas expressões nas demais partes de um laço for. Veja:

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

<?
  for($i = 0, $x = 2; $i <= 10; print ($i * $x) . "<br>", $i++);
?>

Ao executarmos este laço, o resultado será:

0
2
4
6
8
10
12
14
16
18
20

Este último código é um pouco exótico, mas muito fácil de ser encontrado por aí.

Esta dica foi revisada, atualizada e testada no PHP 8.


JavaScript ::: Dicas & Truques ::: Algorítmos Úteis

Como testar se uma palavra (ou frase) é palíndroma em JavaScript

Quantidade de visualizações: 11346 vezes
Palíndromo é uma palavra, frase ou número que permanece igual quando lida de trás para diante. Por extensão, palíndromo é qualquer série de elementos com simetria linear, ou seja, que apresenta a mesma sequência de unidades nos dois sentidos.

Uma palavra palíndroma é aquela cuja sequência de letras é simétrica, permitindo uma leitura idêntica da esquerda para a direita ou da direita para a esquerda: ovo, osso, reler, anilina.

Veja um código JavaScript que pede para o usuário informar um palavra e, em seguida, informa se a palavra é palíndroma ou não:

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

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; 
  charset=iso-8859-1" />
<title>Estudos JavaScript</title>
</head>
<body>
  
<script type="text/javascript">
  function palin(pal){
    var palindroma = true;
    pal = pal.toUpperCase();
  
    for(var i = 0; i < (pal.length / 2); i++){
      if(pal.charAt(i) != pal.charAt(pal.length - i - 1)){
        palindroma = false;
      }
    }
	
    return palindroma;
  }
  
  // testa se uma palavra é palindroma
  var palavra = window.prompt("Informe a palavra", 
    "palavra");
  if(palin(palavra)){
    alert("Esta palavra é palindroma");
  }
  else{
    alert("Esta palavra NÃO é palindroma"); 
  }
</script>
   
</body>
</html>



Python ::: Dicas & Truques ::: Lista (List)

Python para iniciantes - Como usar o tipo de dados list da linguagem Python

Quantidade de visualizações: 7643 vezes
O tipo de dados list é um dos quatro tipos de dados já incluídos no Python (sem a necessidade de importar outros módulos), a saber, tuple, set e dict (dictionary), cada um com qualidades e uso diferentes.

Uma list é uma sequência mutável e ordenada de itens. Os itens de uma list são objetos arbitrários e podem ser de diferentes tipos. Para especificar uma list, podemos usar uma série de expressões (os itens da lista) separadas por vírgulas e entre colchetes ([]). Opcionalmente podemos inserir uma vírgula redundante depois do último item. Para denotar uma lista vazia, use um par de colchetes. Veja alguns exemplos:

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

# uma list com nomes de pessoas
nomes = ['Carlos', 'Fabiana', 'Jorge']
print(nomes[0])
 
# uma list com valores inteiros
valores = [3, 7, 34, 0, 2]
print((valores[1] + valores[4]))
 
# uma lista vazia
lista = []
print(len(lista))

É possível também construir uma lista usando a palavra-chave list. Veja:

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

# função principal do programa
def main():
  # uma list com nomes de pessoas
  nomes = list(['Carlos', 'Fabiana', 'Jorge'])
  print("O nome escolhido é", nomes[0])
  
if __name__== "__main__":
  main()

Ao executar este último exemplo nós teremos o seguinte resultado:

O nome escolhido é Carlos


React ::: Elementos de Formulários HTML ::: input type text Element/Object

Como obter o texto digitado em uma caixa de texto em React usando useState()

Quantidade de visualizações: 399 vezes
Nesta dica mostrarei como podemos retornar o texto digitado em um elemento HTML <input type="text"> ao clicarmos em um botão. Para isso nós faremos uso do gerencimento de estado proporcionado pelo objeto useState do React.

Note que teremos dois estados: nome e nomeAtualizado, que estarão conectados às funções setNome() e setNomeAtualizado(). No momento que o texto é digitado na caixa de texto, automaticamente o estado nome é atualizado para corresponder ao contéudo exato do elemento HTML <input type="text">.

Somente quando o botão é clicado é que transferimos o valor do estado nome para o estado nomeAtualizado, por meio de uma chamada à função setNomeAtualizado.

Veja o código completo para o App.js:

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

// vamos importar o useState
import {useState} from 'react';

// função App() que será exportada
export default function App() {
  // vamos criar dois states e suas funções
  // correspondentes
  const [nome, setNome] = useState('');
  const [nomeAtualizado, setNomeAtualizado] = useState(nome);

  // aqui nós gerenciamos o evento onChange da caixa
  // de texto
  const tratarEventoChange = (event) => {
    // e chamamos a função que atualiza o estado nome
    setNome(event.target.value);
  };

  // aqui nós gerenciamos o evento onClick do botão
  const tratarEventoClick = () => {
    // aqui nós transferimos o valor do estado
    // nome para o estado nomeAtualizado
    setNomeAtualizado(nome);
  };

  // e retornamos para renderização
  return (
    <div>
      <input type="text"
        id="nome" name="nome"
        onChange={tratarEventoChange}
        value={nome}/>

      <h2>Nome Informado: {nome}</h2>

      <h2>Nome Atualizado: {nomeAtualizado}</h2>

      <button onClick={tratarEventoClick}>
	 Atualizar Estado</button>
    </div>
  );
}

E aqui está o código para o index.js:

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

// vamos fazer os imports necessários
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';

// definimos a raiz da aplicação React
const root = ReactDOM.createRoot(
  document.getElementById('root'));

// e renderizamos a aplicação no navegador
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

Execute o exemplo e você verá uma caixa de texto <input type="text">, um botão <button> e dois elementos <h2>. Quando digitamos na caixa de texto, automaticamente o estado nome é atualizado. Ao clicarmos no botão, o estado nome é transferido para o estado nomeAtualizado, tudo isso é refletido de imediato na página.


Veja mais Dicas e truques de React

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

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


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