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áteroQuantidade 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 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 CollectionsQuantidade 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 PythonQuantidade 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 doQuantidade 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 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 inteiroQuantidade 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 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 JavaScriptQuantidade 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 |
Nossas 20 dicas & truques de programação mais populares |
GNU Octave - Como calcular o coeficiente angular de uma reta em GNU Octave dados dois pontos no plano cartesiano Laravel - Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 1 |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Programação orientada a objetos em Java - Como criar e usar interfaces em seus programas Java |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |