Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: ASP.NET ::: Dicas & Truques ::: Sessão

Como usar a propriedade SessionID da classe HttpSessionState para retornar o identificador único de uma sessão ASP.NET

Quantidade de visualizações: 9545 vezes
Em algumas ocasiões gostaríamos de obter o identificar único de uma sessão ASP.NET. Para isso podemos usar a propriedade SessionID da classe HttpSessionState. Este valor é gerado randomicamente pelo ASP.NET e guardado em um cookie de sessão no navegador (browser). O valor do SessionID é então enviado como um cookie em cada requisição feita à aplicação ASP.NET.

Vamos ver um exemplo do uso desta propriedade? Comece colocando o código abaixo em uma página Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  
CodeFile="Default.aspx.cs" Debug="true"
Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Estudos ASP.NET</title>
......


Nesta página nós temos um botão <asp:Button> e um rótulo <asp:Label>. Quando clicarmos no botão o ID da sessão será exibido no rótulo. Veja o código para o arquivo de code-behind Default.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page {
......


Ao clicar no botão você verá uma mensagem parecida com:

O ID da sessão é: vlez1s45xkanco45o3fu1xfq

O SessionID é enviado entre o servidor e o navegador em texto puro, seja como um cookie ou inserido na URL. Como resultado, um código malicioso pode ter acesso à sessão de um outro usuário simplesmente obtendo o valor do SessionID e incluindo-o nas requisições ao servidor. Se estivermos guardando informações privadas e/ou confidenciais na sessão, é recomendado usarmos SSL para encriptar quaisquer comunicações entre o brower e o servidor que inclua o SessionID.

Uma observação importante é que, se clicarmos no botão várias vezes veremos que o SessionID é gerado a cada atualização. Isso acontece porque não gravamos nada na sessão, ou seja, o objeto Session ainda não está em uso. Para obtermos um SessionID estático, que não será alterado durante as demais requisições, devemos implementar o método Session_Start no arquivo Global.asax e gravar alguma coisa na sessão. É claro que podemos usar outras partes da aplicação, mas o recomendável é no método Session_Start.

Veja um exemplo de como fixar o SessionID, ou seja, torná-lo estático:

protected void Button1_Click(object sender, EventArgs e){
  // a sessão ainda não existe?
  if(Session.IsNewSession){
    // vamos guardar qualquer coisa...só para garantir o estado da sessão
    Session["alguma_coisa"] = "um_valor_qualquer";
......


Agora sim! Todas as vezes que clicarmos no botão o valor do SessionID exibido no rótulo será sempre o mesmo.

Link para compartilhar na Internet ou com seus amigos:

Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar construtores em Ruby - Programação Orientada a Objetos em Ruby

Quantidade de visualizações: 10033 vezes
Os métodos construtores são recursos muito importantes na construção de objetos de um classe, uma vez que estes permitem inicializar as variáveis de instância do objeto sendo construído.

Dessa forma, na programação orientada a objetos, o método construtor tem por finalidade instanciar um novo objeto e já fornecer (ou não) os valores iniciais para as suas variáveis de instância.

Em Ruby, o construtor de uma classe é definido com o uso da palavra-chave initialize. Veja um exemplo:

# Definição da classe Cliente
class Cliente
  # construtor da classe
  def initialize(nome, idade)
    @nome = nome
    @idade = idade
  end
    
  # método que permite retornar o nome do cliente
  def obter_nome
    @nome
  end
    
  # método que permite retornar a idade do cliente	
......


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

O nome do cliente é: Osmar J. Silva


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

Como testar a ocorrência de uma substring em uma string do C# usando o método Contains() da classe String

Quantidade de visualizações: 9611 vezes
Nesta dica mostrarei como usar o método Contains() da classe String do C# para verificar se uma letra ou palavra está contida em uma frase ou texto. Se a substring for encontrada, a função Contains() retorna um valor true (verdadeiro), e false (falso) em caso contrário.

Veja o exemplo completo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de programar em C#";

      // a frase contém a palavra "programar"?
      if (frase.Contains("programar")) {
        Console.WriteLine("A palavra pesquisada está contida na string");
......


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

A palavra pesquisada está contida na string

Tenha em mente que o método Contains() da classe String do C# diferencia letras maiúsculas de letras minúsculas.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversa

Quantidade de visualizações: 15578 vezes
Exercício Resolvido de Java - Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversa

Pergunta/Tarefa:

Escreva um programa Java console ou GUI que leia um número de 3 dígitos e o inverta, escrevendo o número lido e o invertido. Por exemplo, se o usuário informar o valor 753, seu programa deverá invertê-lo, resultando em 357. Seu programa deverá exibir a seguinte saída:

Informe um valor inteiro de três dígitos: 753
O valor original é: 753
O valor invertido é: 357
Resposta/Solução:

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

public static void main(String[] args){
  // não se esqueça de adicionar um import para a classe Scanner
  // import java.util.Scanner;

  // vamos criar um objeto da classe Scanner
  Scanner entrada = new Scanner(System.in);

  // vamos solicitar ao usuário que informe um valor inteiro
  // na faixa 100 a 999 (incluindo)
  System.out.print("Informe um valor inteiro de três dígitos: ");

  // vamos ler o valor informado
  int valor = Integer.parseInt(entrada.next());

  // vamos verificar se o valor está na faixa permitida
  if(valor < 100 || valor > 999){
......



Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Python

Quantidade de visualizações: 2398 vezes
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem Python.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[a^2 = c^2 - b^2\]

Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem Python:

# vamos importar o módulo Math
import math as math

def main():
  c = 36.056 # medida da hipotenusa
  b = 30 # medida do cateto adjascente
  
  # agora vamos calcular o comprimento da cateto oposto
......


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

A medida do cateto oposto é: 20.000878

Como podemos ver, o resultado retornado com o código Python confere com os valores da imagem apresentada.


Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular o determinante de uma matriz 3x3 usando a Método de Sarrus em Python - Python para Álgebra Linear

Quantidade de visualizações: 4523 vezes
Os estudos da Geometria Analítica e Álgebra Linear envolvem, em boa parte de seus cálculos, a magnitude de vetores, ou seja, o módulo, tamanho, comprimento ou intensidade dos vetores. E isso não é diferente em relação às matrizes.

Quando uma matriz é envolvida nos cálculos, com muita frequência precisamos obter o seu determinante, que nada mais é que um número real associado à todas as matrizes quadradas.

Nesta dica mostrarei como obter o determinante de uma matriz quadrada de ordem 3, ou seja, três linhas e três colunas, usando o Método de Sarrus (somente matrizes 3x3). Note que é possível obter o mesmo resultado com o Teorema de Laplace, que não está restrito às matrizes quadradas de ordem 3. Veja também que não considerei as propriedades do determinante, o que, em alguns casos, simplifica muito os cálculos.

Então, vamos supor a seguinte matriz 3x3:



O primeiro passo é copiarmos a primeira e a segunda colunas para o lado direito da matriz. Assim:



Agora dividimos a matriz em dois conjuntos: três linhas diagonais descendentes e três linhas diagonais ascendentes:



Agora é só efetuar cálculos. Multiplicamos e somamos os elementos de cada conjunto, subtraindo o segundo conjunto do primeiro. Veja:

(1 x 5 x 9 + 2 x 6 x 7 + 3 x 4 x 8) - (7 x 5 x 3 + 8 x 6 x 1 + 9 x 4 x 2) = 0

Como podemos ver, o determinante dessa matriz é 0.

E agora veja o código Python no qual declaramos e instanciamos uma matriz 3x3, em seguida, calculamos o seu determinante:

# importamos a bibliteca NumPy
import numpy as np

# função principal do programa
def main():
  # vamos criar uma matriz 3x3
  m = np.array([(1, 2, 3), (2, 5, 2), (1, 3, 1)])
  
  # calcula o determinante usando a Regra de Sarrus
  det = ((m[0][0] * m[1][1] * m[2][2]) + (m[0][1]  
    * m[1][2] * m[2][0]) + (m[0][2] * m[1][0] * m[2][1])) - ((m[2][0] 
......


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

O determinante da matriz é: 2.0

É possível também obter o determinante de uma matriz (não restrita à dimensão 3x3) usando o método linalg.det() da biblioteca NumPy do Python. Veja o código a seguir:

# importamos a bibliteca NumPy
import numpy as np

# função principal do programa
def main():
  # vamos criar uma matriz 3x3
  m = np.array([(1, 2, 3), (2, 5, 2), (1, 3, 1)])
  
  # calcula o determinante usando apenas NumPy
......


Veja que usei a mesma matriz e, usando apenas o método linalg.det() nós obtemos o mesmo resultado.


Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

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



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