Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: ActionScript ::: Dicas & Truques ::: Strings e Caracteres

Aprenda a concatenar strings em ActionScript

Quantidade de visualizações: 10922 vezes


Concatenação de strings significa tomar duas ou mais strings e juntá-las sequencialmente em apenas uma. Por exemplo, podemos usar o operador + para concatenar duas strings:
var str1:String = "Arquivo de ";
var str2:String = "Códigos";
var str3:String = str1 + str2;
// str3 == "Arquivo de Códigos"
Podemos também usar o operador += para produzir o mesmo resultado. Veja:
var str:String = "Arquivo de ";
str += "Códigos";
// str == "Arquivo de Códigos"
Além disso, a classe String inclui um método concat(). Veja:
var str1:String = "ActionScript";
var str2:String = "é";
var str3:String = "muito bom!";
var str4:String = concat(str1, " ", str2, " ", str3)
// str4 == "ActionScript é muito bom"
Se usarmos o operador + (ou o operador +=) com um objeto String e um objeto que não é uma String, automaticamente o ActionScript converterá o objeto que não é String em um objeto String, de modo que a expressão possa ser avaliada. Veja:
var str:String = "Área = ";
var area:Number = Math.PI * Math.pow(3, 2);
str = str + area;
// str == "Área = 28.274333882308138"


Link para compartilhar na Internet ou com seus amigos:
Anúncio Patrocinado
Chat de Sexo - Site para adultso - Maiores de 18 anos. Converse com pessoas de todo o Brasil, de forma discreta e anônima

C# ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em C# dados dois pontos no plano cartesiano

Quantidade de visualizações: 1137 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem C# que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

using System;
using System.Collections;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // x e y do primeiro ponto
      Console.Write("Informe a coordenada x do primeiro ponto: ");
      double x1 = double.Parse(Console.ReadLine());
      Console.Write("Informe a coordenada y do primeiro ponto: ");
      double y1 = double.Parse(Console.ReadLine());

      // x e y do segundo ponto
      Console.Write("Informe a coordenada x do segundo ponto: ");
      double x2 = double.Parse(Console.ReadLine());
      Console.Write("Informe a coordenada y do segundo ponto: ");
      double y2 = double.Parse(Console.ReadLine());

      // agora vamos calcular o coeficiente angular
      double m = (y2 - y1) / (x2 - x1);

      // e mostramos o resultado
      Console.WriteLine("O coeficiente angular é: " + m);

      Console.WriteLine("\nPressione qualquer tecla para sair...");
      // pausa o programa
      Console.ReadKey();
    }
  }
}

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

O coeficiente angular é: 0,6666666666666666

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

using System;
using System.Collections;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // x e y do primeiro ponto
      Console.Write("Informe a coordenada x do primeiro ponto: ");
      double x1 = double.Parse(Console.ReadLine());
      Console.Write("Informe a coordenada y do primeiro ponto: ");
      double y1 = double.Parse(Console.ReadLine());

      // x e y do segundo ponto
      Console.Write("Informe a coordenada x do segundo ponto: ");
      double x2 = double.Parse(Console.ReadLine());
      Console.Write("Informe a coordenada y do segundo ponto: ");
      double y2 = double.Parse(Console.ReadLine());

      // vamos obter o comprimento do cateto oposto
      double cateto_oposto = y2 - y1;
      // e agora o cateto adjascente
      double cateto_adjascente = x2 - x1;
      // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
      // (em radianos, não se esqueça)
      double tetha = Math.Atan2(cateto_oposto, cateto_adjascente);
      // e finalmente usamos a tangente desse ângulo para calcular
      // o coeficiente angular
      double tangente = Math.Tan(tetha);

      // e mostramos o resultado
      Console.WriteLine("O coeficiente angular é: " + tangente);

      Console.WriteLine("\nPressione qualquer tecla para sair...");
      // pausa o programa
      Console.ReadKey();
    }
  }
}

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como usar o componente TClientDataSet do Delphi em suas aplicações de banco de dados

Quantidade de visualizações: 15568 vezes
Um objeto da classe TClientDataSet implementa um conjunto de dados independente de banco de dados. Este controle representa um conjunto de dados em memória (in-memory).

Antes de prosseguirmos, veja a posição desta classe na hierarquia de classes do Delphi:

System.TObject
  Classes.TPersistent
    Classes.TComponent
      DB.TDataSet
        DBClient.TCustomClientDataSet
          DBClient.TClientDataSet
Por descendência, a classe TClientDataSet implementa as interfaces Classes.IInterfaceComponentReference, System.IInterface e DB.IProviderSupport.

Um controle TClientDataSet pode ser usado das seguintes formas:

a) Um conjunto de dados baseado em arquivo, único e totalmente funcional direcionado a aplicações compostas de apenas uma camada. Quando usado desta forma, o client dataset representa os dados armazenados em um arquivo dedicado na máquina do usuário.

b) Um buffer em memória local dos registros de um outro conjunto de dados. O outro conjunto de dados (a fonte dos dados) pode residir no mesmo formulário ou data module que o client dataset (por exemplo, quando o client dataset fornece navegação e edição para os dados de um conjunto de dados unidirecional). O conjunto de dados fonte pode também residir em um sistema separado quando o client dataset apoia a parte cliente de uma aplicação de bancos de dados de múltiplas camadas.

A forma mais comum de se usar um controle TClientDataSet é acessando a aba Data Acccess da Tool Palette (Paleta de Ferramentas) e arrastando-o para o seu formulário. Em seguida ajustamos algumas de suas propriedades em tempo de design e pronto. Veja o passo-a-passo para configurar um TClientDataSet para representar uma tabela no banco de dados MySQL (outras dicas minhas mostram como efetuar a conexão com outros bancos de dados):

1) Certifique-se de que o banco de dados MySQL está devidamente configurado e funcionando. Inicie-o, anote o nome de usuário e senha e vamos começar.

2) Vá até a aba de componentes dbExpress e arraste um componente TSQLConnection para o formulário. Este é o componente responsável pela conexão com o banco de dados. Selecione o componente no formulário de forma a acessar suas propriedades no Object Inspector. Em seguida siga atentamente as observações a seguir:

a) Vá na propriedade ConnectioName e selecione MySQLConnection. Automaticamente a propriedade Driver é definida como MySQL. A propriedade LibrayName será definida como dbxmys.dll. O mesmo acontece com a propriedade VendorLib, que é definida como libmysql.dll. dbxmys.dll é fornecida com o Delphi enquanto libmysql.dll vem com a instalação do MySQL e deverá estar em C:\Windows\System para que sua aplicação seja executada com sucesso.

b) O simples fato de definirmos o valor MySQL para a propriedade ConnectionName faz com que os parâmetros de conexão sejam criados com os valores padrões e guardados na propriedade Params. O próximo passo é alterar estes valores de forma a refletir a realidade do banco de dados que vamos usar. Vá em Params e acione o editor Value List Editor. Em HostName você deverá informar o nome ou IP do servidor MySQL. Se estiver rodando localmente use apenas "localhost". Em Database informe o nome da base de dados, por exemplo, "estoque". Em User_Name informe o usuário do banco de dados. Geralmente é "root". Em Password informe a senha do banco de dados. Pressione OK.

c) Vá na propriedade LoginPrompt e altere seu valor para False. Isso evita que a tela de login seja exibida quando tentarmos efetuar a conexão. Agora vá na propriedade Connected e altere seu valor para True. Se correr tudo bem você já estará conectado ao banco de dados MySQL.

3) Agora coloque um componente TSQLDataSet no formulário e defina sua propriedade SQLConnection para o componente TSQLConnection que representa a conexão com o banco de dados. Em seguida defina o valor "ctTable" para a propriedade CommandType. Na propriedade CommandText você deverá informar o nome da tabela que será representada por este TSQLDataSet. Finalmente ajuste a propriedade Active para True.

4) O próximo passo é colocar no formulário um componente TDataSetProvider (na aba Data Access). Este componente é responsável por fazer a conexão com o conjunto de dados (dataset), extrair os dados do SQLDataSet e gerar os comandos de atualização SQL adequados. Assim, informe o valor "SQLDataSet1" para a sua propriedade DataSet.

5) Finalmente chegamos ao componente TClientDataSet. Vá na aba Data Acccess e arraste um TClientDataSet para o formulário. Em seguida informe o valor "DataSetProvider1" para sua propriedade ProviderName. Ajuste sua propriedade Active para True.

6) Hora de exibir e manipular os dados. Vá na aba Data Access e arraste um controle TDataSource para o formulário. Aponte sua propriedade DataSet para "ClientDataSet1". Agora vá na aba Data Controls e arraste um TDBGrid para o formulário. Ajuste sua propriedade DataSource para "DataSource1". Se tudo correu bem, você já verá os registros da tabela serem exibidos no DBGrid.

7) Hora de executar a aplicação. Pressione F9 e vamos ao resultado. Experimente navegar e editar os registros no DBGrid. A aplicação permitirá que você faça isso. No entanto, ao fechar a aplicação e abrí-la novamente você perceberá que as alterações não foram refletidas no banco de dados. Para que isso aconteça, coloque o código abaixo no evento Click de um botão:

procedure TForm3.Button1Click(Sender: TObject);
begin
  if (ClientDataSet1.ChangeCount > 0) then
    ClientDataSet1.ApplyUpdates(-1);
end;

Pronto. Execute a aplicação novamente e faça modificações nos dados exibidos no DBGrid (é preciso sair da linha de edição para que os dados sejam atualizados no DBGrid). Clique no botão para atualizar os dados na tabela do banco de dados. Feche a aplicação a abra-a novamente. Note que agora os dados foram atualizados com sucesso.

Esta dica foi escrita e testada no Delphi 2009.


Python ::: Estruturas de Dados ::: Lista Ligada Simples

Como excluir um nó no final de uma lista encadeada simples em Python

Quantidade de visualizações: 881 vezes
Nesta dica mostrarei como podemos escrever um método remover_final() que remove e retorna o nó no final de uma lista encadeada simples em Python, ou seja, excluí o último nó da lista.

É importante observar que o método exclui o último nó e o retorna completo, inclui o valor que está incluído nele. Se a lista estiver vazia o método retorna o valor None para indicar lista vazia.

Vamos começar então com o código para a classe No da lista singularmente ligada (que salvei em um arquivo no_lista_singularmente_ligada.py):

# classe No para uma lista singularmente encadeada ou
# ligada - Singly Linked List
class No:
  # construtor da classe No
  def __init__(self, info, proximo):
    self.info = info
    self.proximo = proximo

  # método que permite definir o conteúdo do nó
  def set_info(self, info):
    self.info = info

  # método que permite obter a informação de um nó 
  def get_info(self):
    return self.info

  # método que permite definir o campo próximo deste nó
  def set_proximo(self, proximo):
    self.proximo = proximo

  # método que permite obter o campo próximo deste nó
  def get_proximo(self):
    return self.proximo

  # retorna True se este nó apontar para outro nó
  def possui_proximo(self):
    return self.proximo != None

Veja que o código para a classe Nó não possui muitas firulas. Temos apenas um campo info, que guardará o valor do nó, e um campo próximo, que aponta para o próximo nó da lista, ou null, se este for o único nó ou o último nó da lista ligada.

Veja agora o código para a classe ListaLigadaSimples (lista_ligada_simples.py), com os métodos inserir_inicio(), remover_final() e exibir():

# importa a classe No
from no_lista_singularmente_ligada import No

# classe ListaLigadaSimples   
class ListaLigadaSimples:
  # construtor da classe
  def __init__(self):
    self.inicio = None # nó inicial da lista

  # método que deleta um nó no final de uma lista ligada
  # este método retorna o nó excluído
  def remover_final(self):
    # a lista está vazia?  
    if self.inicio == None:
      return None
    else:
      # vamos excluir e retornar o primeiro nó da lista
      removido = self.inicio
      
      # a lista possui apenas um nó?
      if self.inicio.get_proximo() == None:
        # a lista agora ficará vazia
        self.inicio = None
      else:
        # começamos apontando para o início da lista   
        no_atual = self.inicio
        no_anterior = self.inicio

        # enquanto o próximo do nó atual for diferente de nulo
        while no_atual.get_proximo() != None:
          # avançamos o nó anterior
          no_anterior = no_atual
          # saltamos para o próximo nó
          no_atual = no_atual.get_proximo()

        # na estamos na posição de exclusão
        removido = no_atual
        no_anterior.set_proximo(None)
    
    # retorna o nó removido
    return removido

  # método que permite inserir um novo nó no início da lista
  def inserir_inicio(self, info):
    # cria um novo nó contendo a informação e que
    # não aponta para nenhum outro nó
    novo_no = No(info, None)
    
    # a lista ainda está vazia?
    if self.inicio == None:
      # o novo nó será o início da lista  
      self.inicio = novo_no
    else:
      # o novo nó aponta para o início da lista
      novo_no.set_proximo(self.inicio)
      # o novo nó passa a ser o início da lista
      self.inicio = novo_no


  # método que permite exibir todos os nós da lista
  # ligada simples (lista singularmente encadeada)
  def exibir(self):
    # aponta para o início da lista
    no_atual = self.inicio
    # enquanto o nó não for nulo
    while no_atual != None:
      # exibe o conteúdo do nó atual  
      print(no_atual.get_info())
      # pula para o próximo nó
      no_atual = no_atual.get_proximo()

E agora o código main() que insere alguns valores no início da nossa lista singularmente encadeada e testa o método remover_final():

# importa a classe ListaLigadaSimples
from lista_singularmente_ligada import ListaLigadaSimples

# método principal  
def main():
  # cria uma nova lista encadeada simples
  lista = ListaLigadaSimples()

  print("Insere o valor 12 no início da lista")
  lista.inserir_inicio(12)
  print("Conteúdo da lista: ")
  lista.exibir()
  print("Insere o valor 30 no início da lista")
  lista.inserir_inicio(30)
  print("Conteúdo da lista: ")
  lista.exibir()
  print("Insere o valor 27 no início da lista")
  lista.inserir_inicio(27)
  print("Conteúdo da lista: ")
  lista.exibir()

  print("Remove um nó no final da lista")
  removido = lista.remover_final()
  if removido == None:
    print("Não foi possível remover. Lista vazia")
  else:
    print("Nó removido:", removido.get_info())  
  print("Conteúdo da lista: ")
  lista.exibir()

if __name__== "__main__":
  main()

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

c:\estudos_python>python estudos.py
Insere o valor 12 no início da lista
Conteúdo da lista:
12
Insere o valor 30 no início da lista
Conteúdo da lista:
30
12
Insere o valor 27 no início da lista
Conteúdo da lista:
27
30
12
Remove um nó no final da lista
Nó removido: 12
Conteúdo da lista:
27
30


Java ::: Dicas & Truques ::: Strings e Caracteres

Como retornar o tamanho de uma string em Java usando o método length() da classe String

Quantidade de visualizações: 22883 vezes
O método length() da classe String do Java é muito útil quando queremos o tamanho, ou seja, o comprimento de uma string. Uma string é um conjunto de caracteres que compôem uma palavra, frase ou texto em Java.

Este método é chamado diretamente na instância da classe String e retorna um int contendo o tamanho da string. Veja um exemplo de seu uso:

package arquivodecodigos;
 
// Este exemplo mostra como obter o tamanho de uma string
public class Estudos{
  public static void main(String[] args){
    String frase = "Java é muito interessante";
    
    // vamos obter o tamanho da string
    int tam = frase.length();
    
    // e mostramos o resultado
    System.out.println("Esta string contem " + 
      tam + " caracteres");
    
    System.exit(0);
  }
} 

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

Esta string contem 25 caracteres.


C# ::: Coleções (Collections) ::: ArrayList

Como escrever um método C# que retorna uma ArrayList

Quantidade de visualizações: 17028 vezes
Estudantes C# ficam um pouco confusos quando solicitados a escrever funções que retornam objetos de classes. E essa confusão é maior ainda quando precisam retornar uma ArrayList, mais precisamente um objeto da classe ArrayList.

Esta dica mostra como isso pode ser feito. Veja que temos um método que define, em sua assinatura, que o tipo de retorno não é void (sem retorno) mas sim um objeto da classe ArrayList. No corpo deste método temos a criação da ArrayList propriamente dita, a adição de cinco inteiros e finalmente o uso da palavra-chave return para retornar o ArrayList já preenchido ao chamador do método.

Note que o método Main é responsável por efetuar uma chamada ao método, obter o ArrayList resultante e em seguida usar o laço foreach para exibir seus valores:

// método que retornará uma ArrayList
static ArrayList obterLista(){
  // Cria o ArrayList
  ArrayList lista = new ArrayList();

  // Adiciona 5 inteiros
  lista.Add(1);
  lista.Add(2);
  lista.Add(3);
  lista.Add(4);
  lista.Add(5);

  // retorna o ArrayList preenchido
  return lista;
}

static void Main(string[] args){
  // obtém um ArrayList preenchido a partir do
  // método obterLista
  ArrayList mLista = obterLista();

  // exibe os valores do ArrayList
  foreach (int valor in mLista){
    Console.Write("{0} ", valor);
  }

  // pausa o programa
  Console.ReadKey();
}



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

Anúncio Patrocinado
Chat de Sexo - Site para adultso - Maiores de 18 anos. Converse com pessoas de todo o Brasil, de forma discreta e anônima


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