C# ::: Dicas & Truques ::: Tipos de Dados

Como usar os tipos de dados byte e sbyte da linguagem C#

Quantidade de visualizações: 15310 vezes
O tipo de dados byte é usado quando queremos armazenar valores inteiros na faixa de 0 a 255, ou seja, valores inteiros apenas positivos. Veja um exemplo de declaração e definição de uma variável deste tipo:

// uma variável do tipo byte
byte valor = 45;

O tipo byte (que possui 8 bits não sinalizados) é um apelido C# para o tipo System.Byte da plataforma .NET. Note que quando inicializamos uma variável do tipo byte com um literal inteiro, este valor é convertido implicitamente de int para byte. Se o valor sendo definido for maior que a faixa permitida, o programa não compilará. Veja:

// valor fora da faixa suportada pelo tipo byte
byte valor = 290;

Ao tentarmos compilar esta linha teremos o seguinte erro:

Constant value '290' cannot be converted to a 'byte'

Quando se trata de conversões implícitas, um valor do tipo byte pode ser convertido, sem a necessidade de cast, para os tipos short, ushort, int, uint, long, ulong, float, double ou decimal. Veja:

// variável do tipo byte
byte valor = 28;

// variável do tipo float
float valor2 = valor;

O caminho oposto não é verdade, ou seja, não é possível atribuir uma variável do tipo short à uma variável do tipo byte. Veja:

// variável do tipo short
short valor = 50;

// variável do tipo byte
byte valor2 = valor;

// mensagem de erro de compilação
Cannot implicitly convert type 'short' to 'byte'. 
An explicit conversion exists (are you missing a cast?)

Esta conversão não é possível, ainda que o valor contido na variável do tipo short esteja na faixa aceitável pelo tipo byte. Neste caso, um cast (conversão explícita) se faz necessário:

// variável do tipo short
short valor = 50;

// variável do tipo byte
byte valor2 = (byte)valor;

Resumindo, nenhum outro tipo de dados em C# pode ser convertido para o tipo byte implicitamente. Se quiser fazê-lo, use uma conversão explícita (cast).

O tipo sbyte, por sua vez, pode armazenar valores inteiros na faixa de -128 até 127 e possui 8 bits sinalizados. Este tipo é um apelido C# para o tipo de dados System.SByte da plataforma .NET. Veja um exemplo de seu uso:

static void Main(string[] args){
  // variável do tipo sbyte
  sbyte valor = -45;

  // exibe o resultado
  Console.WriteLine("O valor da variável é: " + valor);

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

Note que, a exemplo de byte, o tipo sbyte também é governado por algumas regras de conversão e atribuição de valores literais. Há uma conversão implícita de sbyte para os tipos short, int, long, float, double e decimal. A conversão de qualquer outro tipo de dados para o tipo sbyte só pode ser feita por meio de cast (conversão explícita).


PHP ::: Dicas & Truques ::: PDO (PHP Data Objects)

PHP MySQL - Como efetuar uma conexão PHP + MySQL usando PDO (PHP Data Objects)

Quantidade de visualizações: 13660 vezes
O acesso e manipulação de informações em uma base de dados MySQL usando PDO está se tornando muito popular nos dias atuais. Nesta dica eu mostrarei como podemos efetuar uma conexão PHP + MySQL usando o construtor da classe PDO, passando a ele os parâmetros de conexão.

Veja o código completo para o exemplo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  $server = "localhost";
  $user = "root";
  $pass = "osmar1234";
  $db = "estudos";
   
  try{
    $conn = new PDO("mysql:host=$server;dbname=$db", 
       $user, $pass);
    echo "Conexão efetuada com sucesso.";
  } 
  catch(PDOException $e){
    echo 'Não foi possível conectar: ' . $e->getMessage();
  }
?>
 
</body>
</html>

Se você forneceu todos os parâmetros de conexão corretamente, execute a página PHP e você terá o seguinte resultado:

Conexão efetuada com sucesso.


C++ ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação Orientada a Objetos em C++ - Como usar construtores em suas classes C++

Quantidade de visualizações: 15932 vezes
Quando um objeto de uma classe C++ é criado, a linguagem chama um construtor para tal classe. Se nenhum construtor estiver definido, um construtor padrão é invocado. Este construtor aloca memória para o objeto, mas não o inicializa.

Um construtor é um método que definimos em nossas classes C++ e que possui o mesmo nome da classe. Um construtor não possui tipo de retorno e não retorna nenhum valor. Em geral construtores são públicos, mas, é possível termos construtores privados. Neste caso, somente um método estático da classe poderia criar novos objetos da classe (quando puder dê uma olhada no padrão de projeto Singleton).

O uso mais frequente dos métodos construtores é quando queremos inicializar valores das variáveis e demais recursos no momento da criação de uma nova instância da classe. Esta é uma técnica útil, visto que não precisamos dispor de esforço extra para inicializar as variáveis de instância de um objeto, individualmente, após sua criação.

Vamos ver um exemplo da definição e uso de construtores em uma classe C++? Comece analisando o código para o arquivo de definição da classe Pessoa:

Código para Pessoa.h:

// vamos evitar múltiplas inclusões do
// arquivo de cabeçalho (header file)
#ifndef PESSOA_H
#define PESSOA_H

// vamos incluir o header string
#include <string>

using namespace std;

class Pessoa{
  public:
    // construtor da classe Pessoa
    Pessoa(string, string, int);
    // método que permite retornar o nome da pessoa
    string getNome();
    // método que permite retornar o e-mail da pessoa
    string getEmail();
    // método que permite retornar a idade da pessoa
    int getIdade();
  private:
    // variáveis privadas
    string nome;
    string email;
    int idade;      
};

#endif

Veja a assinatura do método construtor:

Pessoa(string, string, int);

Note que na lista de parâmetros do construtor não precisamos informar os nomes dos parâmetros, apenas seus tipos. Veja agora o arquivo de implementação para esta classe:

Código para Pessoa.cpp:

// arquivo de implementação para a 
// classe Pessoa

// vamos incluir o header Pessoa.h
#include "Pessoa.h"

// implementação do construtor
Pessoa::Pessoa(string nome, string email, int idade){
  this->nome = nome;
  this->email = email;
  this->idade = idade;
}

// método que permite obter o nome da pessoa
string Pessoa::getNome(){
  return this->nome;                  
}

// método que permite obter o email da pessoa
string Pessoa::getEmail(){
  return this->email;                  
}  

// método que permite obter a idade da pessoa
int Pessoa::getIdade(){
  return this->idade;                  
}    

Note que na implementação do método construtor nós recebemos os argumentos para os parâmetros e os usamos para inicializar as variáveis privadas da instância da classe. Observe o uso do ponteiro this para nos referirmos à instância atual da classe Pessoa.

Finalmente, veja o código para o método main() do programa. É aqui que criamos um novo objeto da classe Pessoa e usamos seu método construtor para inicializar suas variáveis privadas de uma só vez:

Código para main.cpp:

#include <cstdlib>
#include <iostream>

// vamos incluir a classe Pessoa
#include "Pessoa.h"

using namespace std;

int main(int argc, char *argv[])
{
    // vamos criar um novo objeto da classe Pessoa
    Pessoa *p = new Pessoa("Osmar J. Silva", 
      "osmar@arquivodecodigos.net", 38);    
    
    // vamos exibir os dados da pessoa
    cout << "Nome: " << p->getNome() << endl;
    cout << "E-Mail: " << p->getEmail() << endl;
    cout << "Idade: " << p->getIdade() << endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

Além do construtor, uma classe C++ possui também um método destrutor. Veja minhas dicas relacionadas a este assunto para aprender como definir e usar destrutores em suas classes C++.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercícios Resolvidos de Java - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equilátero

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

Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra:

A < (B + C), B < (A + C) e C < (A + B).

Escreva um programa Java que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais).

Sua saída deverá ser parecida com:

Informe o primeiro lado do triângulo: 30
Informe o segundo lado do triângulo: 40
Informe o terceiro lado do triângulo: 60
O triângulo é escaleno
Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
      
    // vamos ler o primeiro lado do triângulo
    System.out.print("Informe o primeiro lado do triângulo: ");
    int ladoA = Integer.parseInt(entrada.nextLine());
    
    // vamos ler o segundo lado do triângulo
    System.out.print("Informe o segundo lado do triângulo: ");
    int ladoB = Integer.parseInt(entrada.nextLine());
    
    // vamos ler o terceiro lado do triângulo
    System.out.print("Informe o terceiro lado do triângulo: ");
    int ladoC = Integer.parseInt(entrada.nextLine());
    
    // os lados informados formam um triângulo?
    if((ladoA < (ladoB + ladoC)) && (ladoB < (ladoA + ladoC)) 
      && (ladoC < (ladoA + ladoB))){
      // é um triângulo equilátero (todos os lados iguais)?
      if((ladoA == ladoB) && (ladoB == ladoC)){
        System.out.println("O triângulo é equilátero");  
      }
      else{
        // é isósceles (dois lados iguais e um diferente)?
        if((ladoA == ladoB) || (ladoA == ladoC) || (ladoC == ladoB)){
          System.out.println("O triângulo é isósceles");  
        }
        else{
          // é escaleno
          System.out.println("O triângulo é escaleno");
        }
      }
    }
    else{
      System.out.println("Os lados informados não formam um triângulo.");
    }
  }
}



Java ::: Coleções (Collections) ::: ArrayList

Java para iniciantes - Como embaralhar os elementos de uma ArrayList usando o método shuffle() da classe Collections

Quantidade de visualizações: 13554 vezes
Nesta dica mostrarei como usar o método estático shuffle() da classe Collections da linguagem Java para misturar, ou seja, embaralhar os elementos de um objeto da classe ArrayList.

Veja o código completo:

package arquivodecodigos;

import java.util.ArrayList;
import java.util.Collections;
 
public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();
     
    // adiciona itens na lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    nomes.add("Osmar");    
     
    // exibe os elementos da ArrayList
    System.out.println("Ordem original:\n");
    for(int i = 0; i < nomes.size(); i++){
      System.out.println(nomes.get(i));    
    }  
 
    // Vamos embaralhar os itens da ArrayList
    Collections.shuffle(nomes); 
 
    // exibe os elementos da ArrayList
    System.out.println("\nElementos embaralhados:\n");
    for(int i = 0; i < nomes.size(); i++){
      System.out.println(nomes.get(i));
    }
 
    System.exit(0);
  }
}

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

Ordem original:

Carlos
Maria
Fernanda
Osmar

Elementos embaralhados:

Carlos
Fernanda
Osmar
Maria


Python ::: Dicas & Truques ::: Data e Hora

Como obter o nome do mês da data atual no formato curto usando os métodos today() e strftime() da classe datetime do Python

Quantidade de visualizações: 10532 vezes
Nesta dica mostrarei como podemos combinar os métodos today() e strftime() da classe datetime do Python para retornar o nome do mês da data atual no formato curto, ou seja, se o mês for setembro, o valor retornado será "set".

Veja o código completo para o exemplo:

from datetime import datetime
import locale

def main():
  # Configurações do usuário
  locale.setlocale(locale.LC_ALL, '')
 
  # Obtém um datatime da data e hora atual
  hoje = datetime.today()
 
  # Exibe o nome do mês no formato curto
  print(hoje.strftime("O mês é: %b"))  
 
if __name__== "__main__":
  main()

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

O mês é: mar


C# ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de C# - Peça para o usuário informar o valor do primeiro elemento e gere os valores dos demais elementos com o dobro do

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

Escreva um programa C# que cria um vetor de 5 posições de inteiros. Peça para o usuário informar o valor do primeiro elemento e gere os valores dos demais elementos com o dobro do elemento anterior.

Assim, se o usuário informar o valor 3 para o primeiro elemento, o valor do segundo elemento será 6, o valor do terceiro elemento será 12, e assim por diante.

Sua saída deverá ser parecida com:

Informe o valor do primeiro elemento: 5

Os elementos do vetor são:

5  10  20  40  80
Resposta/Solução:

Veja a resolução comentada deste exercício em C#:

using System;

namespace Estudos {
  class Principal {
    // função principal do programa C#
    static void Main(string[] args) {
      // vamos declarar e construir um vetor de inteiros
      // de 5 elementos
      int[] valores = new int[5];

      // agora vamos pedir para o usuário informar o
      // valor do primeiro elemento
      Console.Write("Informe o valor do primeiro elemento: ");
      valores[0] = Int32.Parse(Console.ReadLine());

      // agora vamos gerar os valores dos próximos elementos
      for (int i = 1; i < valores.Length; i++) {
        // recebe o elemento anterior multiplicado por 2
        valores[i] = valores[i - 1] * 2;
      }

      // e agora mostramos o vetor gerado
      Console.WriteLine("\nOs elementos do vetor são:\n");
      for (int i = 0; i < valores.Length; i++) {
        Console.Write(valores[i] + "  ");
      }

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



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

Como embaralhar as palavras em uma frase ou texto usando C#

Quantidade de visualizações: 12306 vezes
Nesta dica mostrarei como podemos usar a linguagem C# para embaralhar, ou seja, exibir as palavras de uma string em ordem aleatória.

Veja o código C# completo para o exemplo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de VB.NET, Java e C#";
      // mostra a frase na ordem original
      Console.WriteLine("Ordem original: " + frase);

      // converte em um vetor de palavras
      string[] frase2 = frase.Split(' ');

      // vamos embaralhar 5 vezes
      Embaralhar(ref frase2, 5);

      // junta as partes da string novamente
      frase = String.Join(" ", frase2);

      // exibe o resultado
      Console.WriteLine("Embaralhada: " + frase);

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

    static void Embaralhar(ref String[] array, int vezes) {
      Random rand = new Random(DateTime.Now.Millisecond);

      for (int i = 1; i <= vezes; i++) {
        for (int x = 1; x <= array.Length; x++) {
          Trocar(ref array[rand.Next(0, array.Length)],
            ref array[rand.Next(0, array.Length)]);
        }
      }
    }

    static void Trocar(ref String arg1, ref String arg2) {
      String strTemp = arg1;
      arg1 = arg2;
      arg2 = strTemp;
    }
  }
}

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

Ordem original: Gosto de VB.NET, Java e C#
Embaralhada: VB.NET, C# Java de e Gosto


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

Exercícios Resolvidos de Python - Escreva um programa em Python que usa a função log10() para informar a quantidade de dígitos em um número inteiro

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

Escreva um algorítmo em Python que peça para o usuário informar um número inteiro de qualquer tamanho, ou seja, qualquer quantidade de dígitos. Em seguida seu código deverá informar a quantidade de dígitos contida no número inteiro digitado pelo usuário. Seu programa deverá, obrigatoriamente, usar a função log10() do módulo Math.

Sua saída deverá ser parecida com:

Informe um número inteiro de qualquer tamanho: 847
O número informado possui 3 dígitos
Resposta/Solução:

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

# vamos importar o módulo Math
import math

# método principal
def main():
  # vamos pedir para o usuário informar um número inteiro
  numero = int(input("Informe um número inteiro de qualquer tamanho: "))
  
  # agora vamos obter a quantidade de dígitos no
  # número informado
  tamanho = int(math.log10(numero)) + 1
	
  # mostramos o resultado
  print("O número informado possui {0} dígitos".format(tamanho))

if __name__== "__main__":
  main()



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

Como inverter a ordem dos elementos de um array em JavaScript - Vetores e matrizes em JavaScript

Quantidade de visualizações: 11371 vezes
Em algumas situações nós precisamos inverter a ordem dos elementos em um vetor (array) em JavaScript. Para isso nós podemos usar o método reverse() do objeto Array.

Veja o código JavaScript completo para o exemplo, incluindo o documento HTML:

<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>

<script type="text/javascript">
  var valores = new Array(1, 2, 3, 4, 5);
  document.write("Valores no vetor: " + valores + "<br>");
  valores.reverse();
  document.write("Fiz uma chamada ao método reverse()<br>");
  document.write("Valores no vetor: " + valores);
</script>
 
</body>
</html>

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

Valores no vetor: 1,2,3,4,5
Fiz uma chamada ao método reverse()
Valores no vetor: 5,4,3,2,1

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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