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 Apenas R$ 32,90
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: 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 professor

Quantidade 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
Resposta/Solução:

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úmero

Quantidade 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
Resposta/Solução:

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# API

Quantidade 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 lidos

Quantidade 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
Resposta/Solução:

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 String

Quantidade 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 DATABASE

Quantidade 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 ] ]
Note que o único parâmetro exigido é o nome da base de dados. Todos os demais parâmetros são opcionais. Assim, se quisermos criar uma base de dados chamada "estudos", só precisamos disparar o seguinte comando:

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
É importante observar que, quando informamos apenas o nome da base de dados para o comando CREATE DATABASE, as demais opções serão herdadas a partir do template padrão (template1) e das configurações padrões do servidor para a máquina na qual foi instalado. Assim, se verificarmos, no pgAdmin, a base de dados que criamos, encontraremos as seguintes configurações:

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 Windows

Quantidade 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

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á 40 usuários muito felizes estudando em nosso site.