![]() |
|||||
|
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 StringQuantidade de visualizações: 178 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"); } // a palavra pesquisada não foi encontrada na string else { Console.WriteLine("A palavra pesquisada NÃO está contida na string"); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } 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. |
C# ::: Fundamentos da Linguagem ::: Variáveis e Constantes |
C# para iniciantes: Como declarar e usar variáveis em C#Quantidade de visualizações: 48448 vezes |
Variáveis são apelidos que damos aos blocos de memória que podem ser usados para armazenar dados durante a execução de um programa. Podemos guardar informações dos mais variados tipos em variáveis, a saber: valores inteiros, valores de número flutuante (com casas decimais), palavras, frases, textos e até mesmo referências a objetos de classes (fornecidas pela linguagem C# ou nossas próprias). Uma variável é declarada, em sua forma mais simples, informando o tipo de dados (int, float, double, string, etc) e então o nome da variável. Veja: // uma variável usado para armazenar um valor inteiro int valor; Uma vez declarada a variável, podemos definir o valor que será armazenado inicialmente. Isso é chamado de "atribuir um valor inicial à variável". Veja: static void Main(string[] args){ // declara e inicializa uma variável do tipo double double salario = 2345.32; // exibe o valor da variável Console.WriteLine("Salário: {0}", salario); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } É possível declarar mais de uma variável do mesmo tipo. Basta separá-las por vírgulas. Veja: // declara três variáveis do tipo char char a, b, c; Variáveis são realmente úteis quando as estamos usando em cálculos ou outras operações importantes para o correto funcionamento do programa. Veja: static void Main(string[] args){ // declara três variáveis do tipo int int a, b, soma; // inicializa as duas primeiras variáveis a = 20; b = 10; // inicializa a terceira variável usando os valores // das duas anteriores soma = a + b; // exibe o resultado Console.WriteLine("Resultado: {0}", soma); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Para finalizar, lembre-se de uma variável C# possui atributos importantes e que devem ser lembrados com frequência durante o planejamento de suas aplicações. Alguns destes atributos são: tipo, nome, valor, posição na memória, escopo (global ou local) e visibilidade (pública ou privada). |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercícios Resolvidos de Python - Como calcular salário líquido em Python - Calculando o salário líquido de um professorQuantidade de visualizações: 1162 vezes |
Pergunta/Tarefa: Escreva um programa Python que calcule o salário líquido de um professor. Seu programa deverá solicitar que o usuário informe o valor da hora aula (como float), o número de horas trabalhadas no mês (como inteiro) e o percentual de desconto do INSS (como float). Em seguida mostre o salário líquido, formatado de acordo com a moeda brasileira em vigor (na resolução eu usei o Real). Dica: Use locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8'). Sua saída deverá ser parecida com: Informe o valor da hora aula: 28 Informe o número de horas trabalhadas no mês: 12 Informe o percentual de desconto do INSS: 8 Salário Bruto: R$ 336,00 Total de Descontos: R$ 26,88 Salário Líquido: R$ 309,12 Veja a resolução comentada deste exercício usando Python: import locale # função principal do programa def main(): locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8') # vamos ler o valor do hora aula valor_hora_aula = float(input("Informe o valor da hora aula: ")) # vamos ler o número de horas trabalhadas no mês horas_trabalhadas = int(input("Informe o número de horas trabalhadas no mês: ")) # vamos ler o percentual de desconto do INSS percentual_desconto_inss = float(input("Percentual de desconto do INSS: ")) # vamos calcular o salário bruto salario_bruto = valor_hora_aula * horas_trabalhadas # agora calculamos o total do desconto total_desconto = (percentual_desconto_inss / 100) * salario_bruto # finalmente calculamos o salário líquido salario_liquido = salario_bruto - total_desconto # mostramos o resultado print("Salário Bruto: R$ {0}".format(locale.currency(salario_bruto, grouping=True, symbol=None))) print("Total de Descontos: R$ {0}".format(locale.currency(total_desconto, grouping=True, symbol=None))) print("Salário Líquido: R$ {0}".format(locale.currency(salario_liquido, grouping=True, symbol=None))) if __name__== "__main__": main() |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Razão e Proporção |
Exercícios Resolvidos de C - Como resolver problemas de razão e proporção em C - Em uma empresa, a razão entre o número de mulheres e o númeroQuantidade de visualizações: 545 vezes |
Pergunta/Tarefa: Em uma empresa, a razão entre o número de mulheres e o número de homens é de 3/5. Sabendo que há 30 homens nessa empresa, então o número de mulheres é: A) 18 B) 20 C) 22 D) 24 E) 27 Antes de tentarmos resolver esse problema em C, vamos relembrar o que são razão e proporção. Os conceitos de razão e proporção estão ligados ao quociente. A razão é o quociente de dois números, e a proporção é a igualdade entre duas razões. No exercício acima, o valor de 30 homens está fixo, mas seu programa C deverá pedir para o usuário informar a quantidade de homens. Isso vai permitir aplicar o algoritmo em situações diferentes da exposta aqui. Sua saída deve ser parecida com: Informe a quantidade de homens: 30 A quantidade de homens é: 30 A quantidade de mulheres é: 18.0 Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema float dividendo = 3.0; float divisor = 5.0; int quant_homens; float quant_mulheres; // vamos ler a quantidade de homens printf("Informe a quantidade de homens: "); scanf("%d", &quant_homens); printf("A quantidade de homens é: %d", quant_homens); // agora fazemos a multiplicação cruzada quant_mulheres = (quant_homens * dividendo); // e dividimos pelo divisor quant_mulheres = quant_mulheres / divisor; // e mostramos o resultado printf("\nA quantidade de mulheres é: %f", quant_mulheres); printf("\n\n"); system("PAUSE"); return 0; } |
Revit C# ::: Dicas & Truques ::: Selection, Seleção |
Como pedir para o usuário selecionar um ou mais elementos no Revit usando a função PickElementsByRectangle() do objeto Selection da Revit C# APIQuantidade de visualizações: 467 vezes |
A Seleção por Retângulo (ou Retângulo de Seleção) do Revit funciona da seguinte forma: a) Desenhe uma caixa de seleção ao colocar o cursor em um dos lados do elemento a ser selecionado e arraste-o na diagonal para formar um limite retangular. b) Para selecionar somente os elementos que estejam completamente dentro do limite da caixa de seleção, arraste o cursor da esquerda para a direita. c) Para selecionar quaisquer elementos que estejam completamente ou parcialmente dentro do limite da caixa de seleção, arraste o cursor da direita para a esquerda. Via código C# usando a API do Revit, nós podemos pedir para o usuário selecionar elementos usando o retângulo de seleção por meio da função PickElementsByRectangle() do objeto Selection e retornar os elementos selecionados em uma IList. O primeiro passo é obter uma referência ao documento atual UIDocument a partir de uma chamada a this.ActiveUIDocument. Em seguida nós obtemos o objeto Selection a partir do UIDocument e chamamos a sua função PickElementsByRectangle(). Finalmente, de posse da lista IList de elementos selecionados nós só precisamos acessar sua propriedade Count para verificar a quantidade de elementos que o usuário selecionou. Veja o código Revit C# completo para o exemplo: using System; using Autodesk.Revit.UI; using Autodesk.Revit.DB; using Autodesk.Revit.UI.Selection; using System.Collections.Generic; using System.Linq; namespace Estudos { [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes. TransactionMode.Manual)] [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")] public partial class ThisApplication { private void Module_Startup(object sender, EventArgs e) { // vamos obter uma referência ao UIDocument ativo UIDocument uidoc = this.ActiveUIDocument; // agora mostramos uma mensagem para o usuário selecionar um // elemento TaskDialog.Show("Aviso", "Selecione um ou mais elementos"); // obtemos uma referência ao objeto Selection do // UIDocument ativo Selection selecao = uidoc.Selection; // e finalmente esperamos que o usuário selecione um ou // mais elementos usando a seleção de retângulo e os // guardamos em uma lista IList<Element> selecionados = selecao.PickElementsByRectangle( "Selecione os elementos"); // agora mostramos a quantidade de elementos selecionados TaskDialog.Show("Aviso", "Você selecionou " + selecionados.Count + " elementos."); } private void Module_Shutdown(object sender, EventArgs e) { // para fazer alguma limpeza de memória ou algo assim } #region Revit Macros generated code private void InternalStartup() { this.Startup += new System.EventHandler(Module_Startup); this.Shutdown += new System.EventHandler(Module_Shutdown); } #endregion } } Ao executar esta macro você verá uma mensagem TaskDialog com o seguinte aviso: Você selecionou 4 elementos. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercício Resolvido de Java - Um programa Java que lê dois números e mostra a soma, subtração, multiplicação e a divisão dos números lidosQuantidade de visualizações: 1803 vezes |
Pergunta/Tarefa: Faça um programa em Java que receba dois números e no final mostre a soma, subtração, multiplicação e a divisão dos números lidos. Os números deverão ser informados pelo usuário. Sua saída deverá ser parecida com: Informe o primeiro número: 9 Informe o segundo numero: 4 A soma é: 13 A subtração é: 5 A multiplicação é: 36 A divisão é: 2.25 Veja a resolução completa para o exercício em Java, comentada linha a linha: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos usar a classe Scanner para efetuar a leitura Scanner entrada = new Scanner(System.in); // vamos ler o primeiro número System.out.print("Informe o primeiro número: "); int n1 = Integer.parseInt(entrada.nextLine()); // vamos ler o segundo número System.out.print("Informe o segundo numero: "); int n2 = Integer.parseInt(entrada.nextLine()); // primeiro vamos somar os dois números int soma = n1 + n2; System.out.println("A soma é: " + soma); // agora vamos subtrair int subtracao = n1 - n2; System.out.println("A subtração é: " + subtracao); // agora a multiplicação int multiplicacao = n1 * n2; System.out.println("A multiplicação é: " + multiplicacao); // e finalmente a divisão. Note o truque para não arredondar // a divisão double divisao = (n1 * 1.0) / n2; System.out.println("A divisão é: " + divisao); } } |
Java ::: Pacote java.lang ::: String |
Como comparar strings em Java usando os métodos compareTo() e compareToIgnoreCase() da classe StringQuantidade de visualizações: 8945 vezes |
Em algumas situações precisamos efetuar comparação léxica de strings, ou seja, verificar se uma palavra ou frase é "igual, ""maior" ou "menor" que outra. Isso pode ser feito por meio do uso dos métodos compareTo() e compareToIgnoreCase() da classe String (definidos originalmente na interface Comparable<String>). Veja a assinatura do método compareTo(): public int compareTo(String anotherString) O retorno do método é 0 se a duas strings são iguais. O retorno será menor que 0 se a string na qual o método está sendo chamado for menor que a string passada como argumento. O retorno será maior que 0 se a string na qual o método está sendo chamado for maior que a string passada como argumento. Veja um exemplo de comparação léxica de duas strings: public class Main { public static void main(String[] args) { // vamos declarar duas strings String nome1 = "Márcio"; String nome2 = "Márcia"; // vamos comparar as duas strings lexicamente if(nome1.compareTo(nome2) == 0){ System.out.println("As strings são iguais"); } else if(nome1.compareTo(nome2) > 0){ System.out.println("A primeira string é maior que a segunda"); } else{ System.out.println("A primeira string é menor que a segunda"); } } } Ao executarmos este código teremos o seguinte resultado: A primeira string é maior que a segunda A funcionalidade fornecida pelo método compareToIgnoreCase() é semelhante à aquela do método compareTo(). A diferenção é que, quando usamos compareToIgnoreCase(), o método não diferencia letras maiúsculas de letras minúsculas. A comparação efetuada pelos métodos compareTo() e compareToIgnoreCase() é baseada no valor Unicode de cada caractere na string. A sequencia de caracteres representada pelo objeto String é comparada lexicamente com a sequencia de caracteres representada pela string fornecida como argumento. |
PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados) |
Como criar uma base de dados no PostgreSQL usando o comando DDL CREATE DATABASEQuantidade de visualizações: 4843 vezes |
Quando queremos criar uma nova base de dados no PostgreSQL, é comum usarmos o pgAdmin ou a ferramenta de linha de comando createdb. No entanto, há situações nas quais precisamos criar uma nova base de dados usando instruções SQL. Para isso podemos usar o comando DDL CREATE DATABASE. Veja sua sintáxe para o PostgreSQL:CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace_name ] [ CONNECTION LIMIT [=] connlimit ] ] CREATE DATABASE estudos; Este comando pode ser disparado via linha de comando SQL Shell (psql), na janela de Query do pgAdmin ou a partir de uma linguagem de programação. Se uma mensagem parecida com: Query returned successfully with no result in 7674 ms. for exibida, é sinal de que a base de dados foi criada com sucesso. Quando tentamos criar uma base de dados com um nome já existente, o PostgreSQL abortará a operação e exibirá a seguinte mensagem de erro: ERRO: banco de dados "estudos" já existe ********** Error ********** ERRO: banco de dados "estudos" já existe SQL state: 42P04 OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'Portuguese_Brazil.1252' LC_CTYPE = 'Portuguese_Brazil.1252' CONNECTION LIMIT = -1; Em outras dicas desta seção você verá como personalizar cada um destes parâmetros no comando CREATE DATABASE. |
C++ ::: Win32 API (Windows API) ::: Processos |
Como usar a função EnumProcesses() da WinAPI em seus códigos C++ para obter os identificadores de cada processo ativo no WindowsQuantidade de visualizações: 8505 vezes |
A função EnumProcesses() pode ser usada quando queremos obter os ids de todos os processos sendo executados no momento no Windows. Veja o protótipo desta função:BOOL WINAPI EnumProcesses( DWORD* pProcessIds, DWORD cb, DWORD* pBytesReturned ); Esta função possui três parâmetros: a) DWORD* pProcessIds - Um ponteiro para uma matriz que receberá a lista de identificadores dos processos. É importante definir uma matriz um pouco grande, visto que não sabemos de antemão quantos processos serão retornados. b) DWORD cb - O tamanho da matriz pProcessIds em bytes. c) DWORD* pBytesReturned - O números de bytes retornados na matriz pProcessIds. Podemos facilmente saber quantos processos foram encontrados simplesmente dividindo o número de bytes retornados pela quantidade de bytes em um DWORD. Veja um trecho de código no qual listamos os ids de todos os processos sendo executados atualmente. #include <cstdlib> #include <iostream> #include <windows.h> #include <psapi.h> /* Este exemplo usa o header <psapi.h> É necessário fazer uma referência à psapi.lib */ using namespace std; int main(int argc, char *argv[]){ DWORD processos[1024]; // vamos listar até 1024 processos DWORD pBytesReturned; // bytes retornados pela função EnumProcesses() // vamos listar os processos EnumProcesses(processos, sizeof(processos), &pBytesReturned); // quantidade de processos retornados int retornados = pBytesReturned / sizeof(DWORD); // agora vamos listar os ids dos processos retornados for(int i = 0; i < retornados; i++){ if(!processos[i] == 0){ cout << "Processo " << (i + 1) << ": " << processos[i] << endl; } } system("PAUSE"); return EXIT_SUCCESS; } O id de um processo pode ser fornecido para muitas funções úteis do Windows, entre elas OpenProcess(). Veja um trecho de código no qual fechamos (forçadamente) um processo mediante o fornecimento de seu id: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]){ // vamos fechar o processo com o id 3040 // CUIDADO: Verifique o id do processo antes de fechá-lo // pode ser que você esteja fechando processos essenciais // para o bom funcionamento do Windows // vamos abrir o processo desejado // vai retornar ERROR_INVALID_HANDLE se o processo não // puder ser aberto HANDLE hProcesso = OpenProcess(PROCESS_TERMINATE, 0, 3040); // vamos fechar o processo if(TerminateProcess(hProcesso, 0)){ cout << "Processo finalizado com sucesso." << endl; } else{ cout << "Erro ao finalizar o processo: " << GetLastError() << endl; } // vamos fechar o handle do processo CloseHandle(hProcesso); system("PAUSE"); return EXIT_SUCCESS; } |
Java ::: Coleções (Collections) ::: ArrayList |
Como retornar o índice da última ocorrência de um elemento em uma ArrayList do Java usando a função lastIndexOf()Quantidade de visualizações: 9412 vezes |
Em algumas situações nós gostaríamos de pesquisar um valor em um ArrayList e retornar o índice de sua última aparição, para o caso desse elemento estar contido mais de uma vez na coleção. Para isso nós podemos usar o método lastIndexOf(). Se o elemento pesquisado não estiver na ArrayList, o valor -1 será retornado. Veja o código completo para o exemplo: package estudos; import java.util.ArrayList; 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"); nomes.add("Maria"); // obtém o índice da última ocorrência do // nome "Maria" int indice = nomes.lastIndexOf("Maria"); System.out.println("O último índice do nome pesquisado é: " + indice); System.exit(0); } } Ao executarmos este código Java nós teremos o seguinte resultado: O último índice do nome pesquisado é: 4 |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Como remover elementos duplicados de um array em JavaScript usando um Set e o método Array.from() |
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 |