Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Como testar se um número informado pertence a série Fibonacci - Desafio de Programação Resolvido em C++

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

Escreva um programa C++ que pede para o usuário informar um número inteiro positivo e usa uma função para informar se o número passado como argumento pertence à série Fibonacci.

Como sabemos, a série de Fibonacci é uma série de números na qual cada número é obtido mediante a soma dos dois números anteriores. Veja, por exemplo, os primeiros doze números da sequência Fibonacci:

0 1 1 2 3 5 8 13 21 34 55 89

Sua saída deverá ser parecida com:

Informe um número: 21
Pertence à sequência Fibonacci
Resposta/Solução:

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

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

#include <string>
#include <iostream>

using namespace std;

// assinatura da função auxiliar
int pertenceSerieFibonacci(int n);

int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  int numero;
  
  // vamos solicitar um número inteiro positivo
  cout << "Informe um número: ";
  // lê o número
  cin >> numero;
    
  // vamos testar se o número pertence à sequência
  // Fibonacci
  if(pertenceSerieFibonacci(numero)){
    cout << "Pertence à sequência Fibonacci" << endl;
  }
  else{
    cout << "Não pertence à sequência Fibonacci" << endl;
  }
  
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}
  
// função que recebe um número e informa se ele pertence
// à sequência Fibonacci
int pertenceSerieFibonacci(int n){
  // define os termos iniciais
  int primeiro = 0, segundo = 1, terceiro = 0;
    
  // enquanto o terceiro valor for menor que o número informado
  while (terceiro < n){
    terceiro = primeiro + segundo;
    primeiro = segundo;
    segundo = terceiro;
  }
         
  // pertence à sequência Fibonacci?    
  return terceiro == n;
}


Link para compartilhar na Internet ou com seus amigos:

JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como chamar uma função de callback para os elementos individuais de um array usando a função forEach() - Vetores e matrizes em JavaScript

Quantidade de visualizações: 1682 vezes
O método forEach(), adicionado à linguagem JavaScript por meio do ECMAScript 5 (JavaScript 5, ECMAScript 2009, ES5) é usado quando queremos acessar os elementos de um vetor individualmente e chamar, para cada um deles, uma função de callback personalizada.

Veja no trecho de código abaixo como usar a função forEach() para obter a soma de todos os elementos maiores ou iguais a 20:

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

<script type="text/javascript">
  function obterSoma(valor, indice, vetor){
    if(valor >= 20){
      soma = soma + valor;
    }
  }  

  var valores = new Array(21, 5, 30, 7, 12, 3);
  // vamos obter a soma dos valores maiores ou iguais a 20
  var soma = 0;
  // percorremos os elementos do vetor individualmente
  valores.forEach(obterSoma);  
  window.alert("A soma é: " + soma);
</script>

Uma função passada para o método forEach() pode conter os seguintes argumentos (nessa mesma ordem):

a) O valor do item;
b) O índice do item (opcional);
c) O vetor a partir do qual o método forEach() está sendo chamado (opcional).

Veja mais um código no qual obtemos a soma dos elementos cujos valores sejam maiores que seu antecessor (com exceção do primeiro elemento):

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

<script type="text/javascript">
  function obterSoma(valor, indice, vetor){
    if(indice == 0){
      soma = soma + valor;
    }
    else{
      if(valor > vetor[indice - 1]){
        soma = soma + valor;  
      } 
    }
  }  

  var valores = new Array(8, 5, 30, 7, 12, 3);
  // vamos dos elementos cujos valores sejam   
  // maiores que seu antecessor (com exceção do
  // primeiro elemento)
  var soma = 0;
  // percorremos os elementos do vetor individualmente
  valores.forEach(obterSoma);  
  window.alert("A soma é: " + soma);
</script>

O resultado será 50, pois obtemos a soma dos valores 8, 30 e 12.


Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

Como usar a pesquisa ou busca linear ou sequencial nos elementos de um vetor em Java

Quantidade de visualizações: 4408 vezes
A busca linear ou sequencial, muitas vezes chamada de pesquisa linear ou sequencial, é geralmente implementada por meio de um algorítmo que varre os elementos de um coleção sequencial, começando do primeiro elemento e indo até o último. Esta busca não é tão usada quando a pesquisa binária ou hashing, por ser considerada muito lenta quando aplicado a um conjunto de dados muito grande.

A busca linear ou sequencial em um vetor Java pode ser descrito pelos seguintes passos:

1) Efetua a varredura dos elementos do vetor.
2) Compara o valor do elemento atual do vetor com o valor sendo pesquisado.
3) Se o valor for encontrado, efetue o procedimento desejado com o elemento do vetor.
4) Se a varredura alcançar o último elemento do vetor e o valor pesquisado não for encontrado, exiba uma mensagem de erro ou algum outro procedimento para alertar o usuário do programa.

Veja um exemplo no qual declaramos e preenchemos um vetor de int com 5 elementos e em seguida usamos um método pesquisaLinear para verificar se um determinado valor existe no vetor:

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

package arquivodecodigos;

public class Estudos{
  public static void main(String a[]){    
    // vamos criar um vetor de 5 elementos int
    int[] valores = {32, 7, 21, 4, 90};    
    // vamos pesquisar o valor 21
    int valor = 21;

    // vamos verifiar se o valor está no vetor
    int indice = pesquisaLinear(valores, valor);
    if(indice > -1){
      System.out.println("O valor foi encontrado no índice: " 
        + indice);  
    }
    else{
      System.out.println("O valor não foi encontrado.");
    }    
  } 
    
  // método que permite efetuar a busca linear em um vetor  
  public static int pesquisaLinear(int[] vetor, int valor){    
    // percorre os elementos do vetor
    for(int i = 0; i < vetor.length; i++){    
      // o valor foi encontrado?
      if(vetor[i] == valor){    
        return i;    
      }    
    }    

    // não foi encontrado? vamos retornar -1    
    return -1;    
  }   
}

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

O valor foi encontrado no índice: 2

Veja o mesmo código sem usar um método adicional, ou seja, a busca linear é feito dentro do método main() da classe Java:

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

package arquivodecodigos;

public class Estudos{
  public static void main(String a[]){    
    // vamos criar um vetor de 5 elementos int
    int[] valores = {32, 7, 21, 4, 90};    
    // vamos pesquisar o valor 21
    int valor = 21;

    // vamos verifiar se o valor está no vetor
    int indice = -1; // não foi encontrado
    
     // percorre os elementos do vetor
    for(int i = 0; i < valores.length; i++){    
      // o valor foi encontrado?
      if(valores[i] == valor){    
        indice = i;
        break;
      }    
    }    

    if(indice > -1){
      System.out.println("O valor foi encontrado no índice: " 
        + indice);  
    }
    else{
      System.out.println("O valor não foi encontrado.");
    }    
  }   
}



PHP ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções

Como usar funções e variáveis globais em PHP

Quantidade de visualizações: 38266 vezes
Por padrão, variáveis definidas a nível de página, ou seja, variáveis globais, não podem ser acessadas a partir de uma função. Veja um exemplo:

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

<?
  // variável global
  $usuario = "Osmar";
  
  function exibir(){
    echo $usuario; // acessa a variável gloal
  }
  
  // chama a função
  exibir();
?>

Ao executar este exemplo teremos o seguinte resultado:

Notice: Undefined variable: usuario in 
xxx/estudos.php on line 6


Para contornar este problema, temos que empregar a palavra-chave global seguida pelo nome da variável global que queremos acessar. Veja:

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

<?
  // variável global
  $usuario = "Osmar";
  
  function exibir(){
    // permite acesso à variável global
    global $usuario;
	
    echo $usuario; // acessa a variável gloal
  }
  
  // chama a função
  exibir();
?>

Ao executarmos o código novamente, percebemos que o resultado é o esperado. Outra forma de acessar variáveis globais a partir de uma função é usando $GLOBALS. Veja:

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

<?
  // variável global
  $usuario = "Osmar";
  
  function exibir(){
    echo $GLOBALS['usuario']; // acessa a variável global
  }
  
  // chama a função
  exibir();
?>



Delphi ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI

Como retornar uma lista dos dispositivos de saída MIDI no sistema usando Delphi

Quantidade de visualizações: 11008 vezes
Em algumas ocasiões nós precisamos obter uma lista dos dispositivos de saída MIDI no sistema, talvez com o propósito de selecionar um determinado dispositivo em uma ListBox ou ComboBox. O trecho de código abaixo mostra como isso pode ser feito.

O primeiro passo é declarar uma variável do tipo TMidiOutCaps. Este registro está declarado na unit MMSystem.pas e é uma tradução da estrutura MIDIOUTCAPS da API do Windows. Entre outros tipos de dados, esta estrutura possui um membro szPname que retorna o nome do dispositivo. Na unit MMSystem.pas este membro está declarado como array[0..MAXPNAMELEN-1] of AnsiChar, ou seja, uma matriz de AnsiChar que será preenchida pela API do Windows e terá seu final marcado com o caractere null (NULL terminated string). Note a conversão deste valor para o tipo String no momento de inserí-lo no ComboBox. Em versões anteriores do Delphi (estou escrevendo este código no Delphi 2009) podíamos usar a função StrPas() para esta finalidade.

O passo seguinte é obter a quantidade de dispositivos de saída MIDI. Isso é feito com uma chamada à função midiOutGetNumDevs da API do Windows. Uma vez obtida a quantidade de dispositivos nós usamos um laço for e, no corpo deste laço, usamos o valor da variável de controle i para efetuar uma chamada à função midiOutGetDevCaps(), também da API do Windows:

midiOutGetDevCaps(i, @MidiOutCaps, sizeof(TMidiOutCaps));

Esta função recebe o identificador do dispositivo (um valor inteiro começando em 0 e indo até a quantidade de dispositivos - 1), um ponteiro para um registro MidiOutCaps e o tamanho em bytes do registro. Se a função for executada com sucesso, o registro MidiOutCaps será preenchido com várias informações úteis, tais como o nome do dispositivo, o ID do fabricante, o ID do produto, versão do driver, tipo do dispositivo MIDI, número de vozes suportadas, número máximo de notas que podem ser tocadas simultaneamente, etc.

Para finalizar, nós acessamos o campo szPname do registro MidiOutCaps e o adicionamos no ComboBox. Veja o código completo a seguir:

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

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  MidiOutCaps: TMidiOutCaps; // este registro (record) está definido em MMSystem.pas
  erro: Word;
begin
  // uses MMSystem

  ComboBox2.Clear;
  // midiOutGetNumDevs retorna a quantidade de dispositivos de saída MIDI no sistema
  for i := 0 to midiOutGetNumDevs - 1 do
  begin
    // vamos obter o dispositivo identificado pela variável i (uDeviceID)
    erro := midiOutGetDevCaps(i, @MidiOutCaps, sizeof(TMidiOutCaps));
    if erro <> MMSYSERR_NOERROR then
       raise Exception.Create('Não foi possível obter a lista de dispositivos ' +
         'de saída MIDI');

    // vamos adicionar o nome do dispositivo no ComboBox
    ComboBox2.Items.Add(StrPas(MidiOutCaps.szPname));
  end;
end;

Ao executar este código o ComboBox será preenchido com valores semelhantes à:

Microsoft GS Wavetable SW Synth
MPU-401

Nas demais dicas relacionadas a este assunto você deverá sempre indicar o dispositivo de saída MIDI. Geralmente você poderá fornecer os valores 0 ou 1 para as funções MIDI que pedem o ID do dispositivo de saída.

Para fins de compatibilidade esta dica ou anotação foi escrita usando Delphi 2009.


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

Como resolver uma equação do segundo grau em C# - Como calcular Bhaskara em C#

Quantidade de visualizações: 832 vezes
Como resolver uma equação do 2º grau usando C#

Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem C#.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a &#8800; 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso código C# vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código C#. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

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

using System;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // os coeficientes
      double a, b, c;
      // as duas raizes, a imaginaria e o discriminante
      double raiz1, raiz2, imaginaria, discriminante;

      // vamos pedir para o usuário informar os valores dos coeficientes
      Console.Write("Valor do coeficiente a: ");
      a = Double.Parse(Console.ReadLine());
      Console.Write("Valor do coeficiente b: ");
      b = Double.Parse(Console.ReadLine());
      Console.Write("Valor do coeficiente c: ");
      c = Double.Parse(Console.ReadLine());

      // vamos calcular o discriminante
      discriminante = (b * b) - (4 * a * c);

      // a equação possui duas soluções reais?
      if (discriminante > 0) {
        raiz1 = (-b + Math.Sqrt(discriminante)) / (2 * a);
        raiz2 = (-b - Math.Sqrt(discriminante)) / (2 * a);
        Console.Write("Existem duas raizes: x1 = " + raiz1
          + " e x2 = " + raiz2);
      }
      // a equação possui uma única solução real?
      else if (discriminante == 0) {
        raiz1 = raiz2 = -b / (2 * a);
        Console.Write("Existem duas raizes iguais: x1 = "
          + raiz1 + " e x2 = " + raiz2);
      }
      // a equação não possui solução real?
      else if (discriminante < 0) {
        raiz1 = raiz2 = -b / (2 * a);
        imaginaria = Math.Sqrt(-discriminante) / (2 * a);
        Console.Write("Existem duas raízes complexas: x1 = " +
          raiz1 + " + " + imaginaria + " e x2 = " + raiz2
          + " - " + imaginaria);
      }
    
      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1 e x2 = -3


Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

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