Você está aqui: C# ::: LINQ ::: LINQ to Objects

Como retornar o menor elemento em um array de int em C# usando a função Min() do LINQ

Quantidade de visualizações: 928 vezes
Nesta dica mostrarei, em um exemplo bem simples, como podemos usar o método Min() do LINQ (Language-Integrated Query) do C# para retornar o menor elemento de um vetor de inteiros.

Note que temos um vetor de int com os valores {5, 2, 8, 3, 0, 1} e o valor 0 deverá ser retornado como sendo o menor.

Veja o código completo para o exemplo:

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

using System;
using System.Linq;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // vamos construir um vetor de inteiros
      int[] valores = {5, 2, 8, 3, 0, 1};

      // vamos obter o menor elemento do vetor
      int menor = valores.Min();

      // vamos mostrar o resultado
      Console.WriteLine("O menor valor é: {0}", menor);

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

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

O menor valor é: 0

Fique atento ao fato de que o método Min() pode atirar uma exceção do tipo InvalidOperation se o array ou coleção estiver vazia ou não incluir nenhum elemento que se encaixe nas condições testadas.

Veja o resultado ao chamarmos este método em um vetor vazio:

System.InvalidOperationException
HResult=0x80131509
Message=Sequence contains no elements
Source=System.Linq
StackTrace:
at System.Linq.ThrowHelper.ThrowNoElementsException()
at System.Linq.Enumerable.Min(IEnumerable`1 source)
at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11

Link para compartilhar na Internet ou com seus amigos:

AutoCAD .NET API C# ::: Dicas & Truques ::: Linha, Linhas, Comando LINE

Como selecionar uma linha no AutoCAD e mostrar a equação da reta correspondente usando AutoCAD .NET C# API

Quantidade de visualizações: 172 vezes
Em algumas situações nós queremos posicionar pontos ou outros desenhos em cima de uma linha, ou seja, em cima de uma reta. Uma das melhores formas de fazer isso é obtendo a equação reduzida da reta e usar as coordenadas x e y correspondentes.

Nesta dica eu mostro como isso pode ser feito usando a AutoCAD .NET C# API. O primeiro passo é pedir para o usuário selecionar a linha na área de desenho do AutoCAD usando doc.Editor.GetEntity().

Em seguida nós obtemos as coordenadas iniciais e finais da linha usando as propriedades StartPoint e EndPoint do objeto AcadLine. Para finalizar nós calculamos a equação reduzida da reta e exibimos o resultado.

Fique atento ao código que calcula o coeficiente angular e linear da reta. Considere o caso em que o coeficiente angular ou linear é igual a 0.

Veja o código AutoCAD .NET API C# completo para o exemplo:

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

using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;

[assembly: CommandClass(typeof(PluginEstudos.Class1))]
namespace PluginEstudos {
  public class Class1 {
    [CommandMethod("estudos")]
    public void Estudos() {
      // vamos obter o documento atual
      Document doc = Application.DocumentManager.MdiActiveDocument;
      // vamos obter a base de dados
      Database db = doc.Database;

      // opções da seleção
      PromptEntityOptions opcoes = new 
        PromptEntityOptions("\nSelecione uma linha: ");

      // obtemos o resultado da seleção
      PromptEntityResult resultado = doc.Editor.GetEntity(opcoes);

      // a seleção foi feita com sucesso
      if (resultado.Status != PromptStatus.OK) {
        Application.ShowAlertDialog("Nenhum elemento selecionado.");
        return;
      }

      // obtemos o id do objeto selecionado
      ObjectId id_objeto = resultado.ObjectId;

      // iniciamos uma transação
      using (Transaction trans = db.TransactionManager.StartTransaction()) {
        BlockTable tabela_blocos;
        BlockTableRecord reg_tabela_blocos;

        // obtemos a entidade selecionada
        Entity ent = trans.GetObject(id_objeto, OpenMode.ForWrite) as Entity;
        
        // a entidade selecionada é uma linha
        if (ent is Line) {
          Line linha = ent as Line;
          // vamos obter o ponto inicial da linha
          Point3d ponto_inicial = linha.StartPoint;
          // vamos obter o ponto final da linha
          Point3d ponto_final = linha.EndPoint;
          string sinal = "+";
          // vamos calcular o coeficiente angular da reta
          Double m = (ponto_final.Y - ponto_inicial.Y) / (ponto_final.X - ponto_inicial.X);
          // vamos calcular o coeficiente linear
          double n = ponto_inicial.Y - (m * ponto_inicial.X);

          // coeficiente linear menor que zero? O sinal será negativo   
          if (n < 0) {
            sinal = "-";
            n = n * -1;
          }

          // abre o model space para escrita
          tabela_blocos = trans.GetObject(db.BlockTableId,
            OpenMode.ForRead) as BlockTable;
          reg_tabela_blocos = trans.GetObject(tabela_blocos[BlockTableRecord.ModelSpace],
            OpenMode.ForWrite) as BlockTableRecord;

          // vamos calcular as coordenadas x e y do ponto médio que
          // será usado para posicionar o texto
          double x = (ponto_inicial.X + ponto_final.X) / 2;
          double y = (ponto_inicial.Y + ponto_final.Y) / 2;

          // criamos um novo texto
          DBText texto = new DBText();
          texto.TextString = "y = " + m.ToString("0.00") + "x"
            + " " + sinal + " " + n.ToString("0.00");
          texto.SetDatabaseDefaults();
          texto.Height = 5;
          texto.Position = new Point3d(x, y - texto.Height, 0);
          // adicionamos o texto no desenho
          reg_tabela_blocos.AppendEntity(texto);
          trans.AddNewlyCreatedDBObject(texto, true);
        }
        else {
          Application.ShowAlertDialog("Você não selecionou uma linha.");
        }

        // salvamos a transação
        trans.Commit();
      }
    }
  }
}

Ao executar este código AutoCAD .NET C# API e selecionar uma linha nós teremos um resultado parecido com:

Selecione uma linha [Usuário seleciona a linha]
[Mostra a equação reduzida da reta como um texto posicionado no ponto médio da linha]

Como forma de testar ainda mais o código, defina um valor para o x e experimente plotar um ponto na área de desenho do AutoCAD. Você verá que o ponto cai exatamente em cima da linha, ou seja, da reta que a representa.


C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle

C++ para iniciantes - Como usar a instrução switch em C++

Quantidade de visualizações: 10143 vezes
A instrução switch é usada quando queremos testar várias possibilidades de fluxo de código mas não queremos usar vários else if. Desta forma, cada possibilidade é testada em um bloco case. Veja um exemplo:

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

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
  int valor = 4;

  switch(valor){
    case 0:
      cout << "Valor e igual a 0" << endl;
      break;
    case 1:
      cout << "Valor e igual a 1" << endl;
      break;
    case 2:
      cout << "Valor é igual a 2" << endl;
      break;
    default:
      cout << "Nenhuma das anteriores" << endl;
  }
    
  system("PAUSE");
  return EXIT_SUCCESS;
}

Veja que, se nenhuma das condições testadas em um bloco case for satisfatória, a parte default da instrução switch será executada.

A variável fornecida para uma instrução switch pode ser de qualquer tipo integral, ou de um tipo criado pelo usuário mas que pode ser convertido para um tipo integral (mesmo que seja uma conversão forçada - cast).


C ::: C para Engenharia ::: Física - Mecânica

Como calcular Velocidade Vetorial Média usando a linguagem C - C para Engenharia - Física - Mecânica - Cinemática

Quantidade de visualizações: 2365 vezes
Como calcular Velocidade Vetorial Média usando a linguagem C

Na Física, mais especificamente na Mecânica e Cinemática, nós estamos o tempo todo interessados em medir a "rapidez" com que uma partícula se move de um ponto para outro ponto. Por partícula podemos entender qualquer móvel: um carro, um avião, uma bola, uma pessoa, etc.

No caso de um movimento bidimensional ou tridimensional nós devemos considerar a grandeza velocidade média como vetores e usar a notação vetorial. Em outras dicas do site você encontrará cálculos envolvendo vetores e até mesmo calculadoras com as operações vetoriais mais comuns.

Dessa forma, a fórmula para obtenção da Velocidade Vetorial Média é:

\[\vec{v}_\text{méd} = \frac{\Delta \vec{r}}{\Delta t} \]

Onde __$\Delta \vec{r}__$ é a variação da posição da partícula e __$\Delta t__$ é a variação do tempo entre os dois deslocamentos cuja velocidade vetorial média querermos medir.

Antes de vermos o código C, dê uma boa olhada na imagem a seguir:



Nosso objetivo será calcular a velocidade vetorial média da partícula saindo da posição __$\vec{r}_1__$ = 10__$\hat{\imath}__$ + 7__$\hat{\jmath}__$ m (10, 7), no instante t1 = 2s, e indo para a posição __$\vec{r}_2__$ = 12__$\hat{\imath}__$ + 2__$\hat{\jmath}__$ m (12, 2) em t2 = 7s. Note que o trajeto da partícula foi marcado de verde na imagem.

E agora, finalmente, vamos ao código C que lê os valores das coordenadas x e y dos dois vetores de posições (inicial e final), o tempo de deslocamento inicial e final e mostra o vetor velocidade média:

----------------------------------------------------------------------
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[]){
  // coordenadas dos dois vetores de posições
  float x1, y1, x2, y2;
  // guarda o vetor delta r (variação do deslocamento)
  float delta_r_x, delta_r_y;
  // guarda o tempo inicial, tempo final e variacao (em segundos)
  float tempo_inicial, tempo_final, delta_t;
  // guarda as coordenadas do vetor velocidade
  float vetor_vm_x, vetor_vm_y; 
        
  // x e y do primeiro vetor
  printf("Coordenada x do primeiro vetor: ");
  scanf("%f", &x1);
  printf("Coordenada y do primeiro vetor: ");
  scanf("%f", &y1);
      
  // x e y do segundo vetor
  printf("Coordenada x do segundo vetor: ");
  scanf("%f", &x2);
  printf("Coordenada y do segundo vetor: ");
  scanf("%f", &y2);   
      
  // vamos ler o tempo inicial e tempo final    
  printf("Tempo inicial em segundos: ");
  scanf("%f", &tempo_inicial);
  printf("Tempo final em segundos: ");
  scanf("%f", &tempo_final);
	    
  // vamos calcular o vetor delta r
  delta_r_x = x2 - x1;
  delta_r_y = y2 - y1;
  
  // vamos calcular o delta t (variação do tempo)
  delta_t = tempo_final - tempo_inicial;
      
  // finalmente calculamos o vetor velocidade média
  vetor_vm_x = delta_r_x / delta_t;    
  vetor_vm_y = delta_r_y / delta_t; 
	    
  // mostramos o resultado
  printf("O Vetor Velocidade Média é: (%.2f, %.2f)m/s",
   vetor_vm_x, vetor_vm_y);
   
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

Coordenada x do primeiro vetor: 10
Coordenada y do primeiro vetor: 7
Coordenada x do segundo vetor: 12
Coordenada y do segundo vetor: 2
Tempo inicial em segundos: 2
Tempo final em segundos: 7
O Vetor Velocidade Média é: (0.40, -1.00)m/s

Pressione qualquer tecla para continuar. . .

Note que aqui nós estamos usando vetores do R2, mas o processo é o mesmo para vetores do R3.


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

Como elevar uma base a um determinado expoente usando a função pow() da linguagem C

Quantidade de visualizações: 2017 vezes
Em algumas situações nós precisamos efetuar cálculos de potenciação em C, ou seja, elevar um número (uma base) a um determinado expoente e obter sua potência. Veja a figura a seguir:



Veja que aqui o valor 5 foi elevado ao cubo, ou seja, ao expoente 3 e obtemos como resultado sua potência: 125.

A linguagem C nos fornece a função pow(), presente no header math.h que recebe como argumentos a base e o expoente e nos retorna a potência (como um valor double). Veja um exemplo de seu uso no código abaixo:

----------------------------------------------------------------------
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 base = 4;
  int expoente = 5;
  double potencia = pow(4, 5);
  printf("A base %d elevada ao expoente %d é igual à potência %f\n\n",
	  base, expoente, potencia);
  
  system("PAUSE");  
  return 0;
}

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

A base 4 elevada ao expoente 5 é igual à potência 1024.000000

Note que a função pow() da linguagem C retorna um valor double.


Android Java ::: android.widget ::: Button

Como detectar um clique em um botão do Android usando setOnClickListener() e exibir uma mensagem AlertDialog

Quantidade de visualizações: 1453 vezes
O método setOnClickListener() nos permite definir a ação que será disparada ao clicarmos em um botão. Note que primeiro nós localizamos o botão no arquivo XML de layout usando o método findViewById() da classe View.

Comece analisando o arquivo XML de layout no qual criamos um botão e o colocamos como filho de um elemento LinearLayout:

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
  http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  tools:context=".MainActivity">

  <Button xmlns:android="
    http://schemas.android.com/apk/res/android"
    android:id="@+id/btn_enviar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/btn_enviar"
    android:textAllCaps="false"
    />
</LinearLayout>

E agora o código Java no arquivo MainActivity.java:

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

package com.example.estudosandroid;

import androidx.appcompat.app.AppCompatActivity;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // vamos detectar um clique no botão e exibir uma mensagem AlertDialog
    Button button = (Button) findViewById(R.id.btn_enviar);
    button.setOnClickListener(new View.OnClickListener(){
      public void onClick(View view) {
        AlertDialog dialogo = new
          AlertDialog.Builder(MainActivity.this).create();
        dialogo.setTitle("Aviso");
        dialogo.setMessage("Esta é uma mensagem de aviso");
        dialogo.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
          new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which){
              dialog.dismiss(); // fecha o AlertDialog
            }
          }
        );
        dialogo.show();
      }
    });
  }
}



Veja mais Dicas e truques de Android Java

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