Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

Python ::: Dicas & Truques ::: Arquivos e Diretórios

Como criar um diretório em Python usando a função mkdir() do módulo os

Quantidade de visualizações: 3233 vezes
Podemos usar a função mkdir() do módulo os da linguagem Python para criarmos diretórios. Em sua versão mais simples, este método pede somente o nome e caminho do diretório a ser criado. Se o caminho for omitido, o novo diretório será criado no diretório atual, ou seja, o diretório da aplicação Python.

Veja um exemplo no qual criamos um diretório chamado "app" no diretório "C:\estudos_python":

# importa o módulo os
import os

# método principal  
def main():
  # nome do diretório
  diretorio = "C:\\estudos_python\\app"

  # vamos criar o diretório
  os.mkdir(diretorio)

  # mostramos o resultado
  print('O diretório foi criado com sucesso.')

if __name__== "__main__":
  main()

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

c:\estudos_python>python estudos.py
O diretório foi criado com sucesso.

Note que um erro do tipo FileExistsError será exibido se o diretório já existir:

Traceback (most recent call last):
File "c:\estudos_python\estudos.py", line 16, in <module>
main()
File "c:\estudos_python\estudos.py", line 10, in main
os.mkdir(diretorio)
FileExistsError: [WinError 183] Não é possível criar um arquivo já existente: 'C:\\estudos_python\\app'

Uma forma de evitar este erro é verificar se o diretório já existe ou usar uma construção try...except. Veja:

# importa o módulo os
import os

# método principal  
def main():
  # nome do diretório
  diretorio = "C:\\estudos_python\\app"

  try:
    # vamos criar o diretório
    os.mkdir(diretorio)
    # mostramos o resultado
    print('O diretório foi criado com sucesso.')
  except os.error as error_msg:
    print("Houve um erro: %s" % str(error_msg))

if __name__== "__main__":
  main()

Execute o código novamente e veja como o tratamento de erro ficou mais elegante.


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

Exercícios Resolvidos de Java - Java Básico - Lendo a nota de um aluno e classificando-a com as letras A, B, C, D ou E

Quantidade de visualizações: 4308 vezes
Exercício Resolvido de Java - Java Básico - Lendo a nota de um aluno e classificando-a com as letras A, B, C, D ou E

Pergunta/Tarefa:

Escreva um programa Java que lê a nota de um aluno e a classifica de acordo com as seguintes regras:

1) Maior ou igual a 9,00 - A
2) Maior ou igual a 8,0 e menor que 9,0 - B
3) Maior ou igual a 7,0 e menor que 8,0 - C
4) Maior ou igual a 6,0 e menor que 7,0 - D
5) Menor que 6,0 - E

Sua saída deverá ser parecida com:



Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
    
    // vamos solicitar que o usuário informe a nota do aluno
    System.out.print("Informe a nota do aluno: ");
    double nota = Double.parseDouble(entrada.nextLine());
    char letra = 'A'; // vai guardar a letra de classificação
    
    // a nota está dentro da faixa esperada?
    if((nota < 0) || (nota > 10)){
      System.out.println("A nota esta fora da faixa esperada.");  
    }
    else{
      if(nota < 6.0){
        letra = 'E';  
      }
      else if((nota >= 6.0) && (nota < 7.0)){
        letra = 'D';  
      }
      else if((nota >= 7.0) && (nota < 8.0)){
        letra = 'C';  
      }
      else if((nota >= 8.0) && (nota < 9.0)){
        letra = 'B';  
      }
      else{
        letra = 'A';  
      }
    }
    
    // vamos mostrar a classificação
    System.out.println("A classificação desta nota é: " + letra);
    
    System.out.println("\n");
  }
}



HTML5 ::: Aplicativos Completos ::: Programas de desenho, edição e visualização de imagens e fotos

Como criar um programa de desenho simples usando o objeto Canvas do HTML5

Quantidade de visualizações: 5985 vezes
Revisando alguns códigos que desenvolvi para clientes ao longo desses anos, encontrei um exemplo de um programa de desenho bem simples demonstrando as possibilidades gráficas do elemento Canvas do HTML. Este código foi escrito há uns dois anos e resolvi compartilhar com todos, para que vocês possam aprimorá-lo e acrescentar novas idéias, afinal, o HTML5 está mais atual do que nunca.

Veja o resultado no navegador:



Eu o escrevi de forma bem simples, sem usar jQuery ou qualquer outro framework, apenas JavaScript raiz mesmo, de forma que até os estudantes mais iniciantes não terão dificuldade de entender. Veja a listagem completa e com comentários:

<html>
<head>
<title>Desenhando no canvas do HTML5</title>
</head>

<body style="padding: 15px">

<b>Clique e arraste para desenhar</b><br><br>

<canvas id="quadro" style="border: 1px solid #666" 
  width="600" height="350"></canvas>

<br><br><button onClick="limpar()">Limpar</button>

<script type="text/javascript">
  // obtém uma referência ao canvas
  var quadro = document.getElementById('quadro');
  // vamos obter o contexto de desenho
  var areaDesenho = quadro.getContext("2d");
  
  // podemos desenhar?
  var podeDesenhar = false; // ainda não
  
  // vetores para guardar as posições x, y, e se o mouse está sendo
  // movimentado pressionado
  var vetorX = new Array();
  var vetorY = new Array();
  var vetorArrastar = new Array();
  
  // agora vamos adicionar na área de desenho um "ouvidor" de 
  // eventos mousedown, ou seja, vamos detectar quando o usuário
  // pressionar o botão do mouse (sem soltar) 
  quadro.addEventListener('mousedown', function(e){
    // podemos iniciar o desenho
    podeDesenhar = true;
    registrarClique(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, false);
    desenhar(); // faça o desenho, moço
  });
  
  // o "ouvidor" de evento que detecta se o mouse está sendo arrastado
  // pressionado
  quadro.addEventListener('mousemove', function(e){	
    if(podeDesenhar){
      registrarClique(e.pageX - this.offsetLeft, e.pageY - 
        this.offsetTop, true);
      desenhar(); // faça o desenho, moço
    }
  });

  // o "ouvidor" de evento que detecta se o mouse foi liberado
  // e interrompe o desenho
  quadro.addEventListener('mouseup', function(e){	
    podeDesenhar = false;
  });

  // o mouse saiu da área de desenho?
  quadro.addEventListener('mouseleave', function(e){	
    podeDesenhar = false;
  });

  function registrarClique(x, y, arrastar){
    // aqui nós guardamos em vetores as posições x, y do clique ou
    // o movimento do mouse pressionado.
    vetorX.push(x);
    vetorY.push(y);
    vetorArrastar.push(arrastar);
  }
  
  // é aqui que a mágica ocorre
  function desenhar(){
    // primeiro vamos limpar o quadro de desenho
    areaDesenho.clearRect(0, 0, areaDesenho.canvas.width, 
      areaDesenho.canvas.height);
	
    areaDesenho.strokeStyle = "#5c5cd6"; // cor
    areaDesenho.lineJoin = "round"; // formato da junção de linha
    areaDesenho.lineWidth = 5; // largura da linha
			
    // percorremos os vetores, usando como base o vetor de coordenadas x
    for(var i = 0; i < vetorX.length; i++){		
      areaDesenho.beginPath(); // inicia o caminho
    
      // o mouse foi arrastado neste evento?
      if((vetorArrastar[i] == true && i > 0)){
        areaDesenho.moveTo(vetorX[i - 1], vetorY[i - 1]);
      }
      else{
        // é o início do desenho
        areaDesenho.moveTo(vetorX[i] - 1, vetorY[i]);
      }
     
      // desenha a linha do ponto X ao ponto Y  
      areaDesenho.lineTo(vetorX[i], vetorY[i]);
      // fecha o caminho
      areaDesenho.closePath();
      // conclui de fato o desenho
      areaDesenho.stroke();
    }  
  }
  
  // e aqui nós limpamos a área de desenho e esvaziamos os vetores
  function limpar(){
    areaDesenho.clearRect(0, 0, areaDesenho.canvas.width, 
      areaDesenho.canvas.height);
    vetorX = [];
    vetorY = [];
    vetorArrastar = [];
  }
</script>

</body>
</html>

Salve o código como "desenho.html" (cuidado para não salvar como "desenho.html.txt") e abra-o no seu navegador, remoto ou localmente. Você pode começar suas modificações alterando a cor do desenho, a largura da linha, etc. Você pode também deixar figuras pré-configuradas e até permitir que o usuário inclua fotos no Canvas.

Para os estudantes que já sabem Node.js, saiba que é possível enviar os três vetores via sockets em um ambiente real time para que outros usuários na rede vejam o seu desenho em tempo real. Bons estudos.


C# ::: Coleções (Collections) ::: List<T>

Como criar uma List genérica de inteiros em C#, adicionar elementos e percorrê-los usando o laço foreach

Quantidade de visualizações: 31227 vezes
Nesta dica mostrarei como podemos usar o laço foreach do C# para percorrer os elementos de uma List genérica. Primeiro nós criamos a lista de inteiros usando o construtor List<int>() e, em seguida, adicionamos itens a ela usando a função Add().

Para finalizar, usamos o laço foreach para percorrer os elementos individualmente.

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

using System;
using System.Collections.Generic;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // cria uma List genérica de inteiros
      List<int> valores = new List<int>();

      // insere valores na lista
      valores.Add(4);
      valores.Add(2);
      valores.Add(87);
      valores.Add(23);

      // acessa os valores da lista e os exibe
      // usando um laço foreach
      Console.WriteLine("Os elementos da Lista são: ");
      foreach (int valor in valores) {
        Console.WriteLine(valor);
      }

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

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

Os elementos da Lista são:
4
2
87
23


jQuery ::: Dicas & Truques ::: Manipulação e Conteúdo Dinâmico

jQuery para iniciantes - Como obter valores de elementos de formulários HTML usando a função val() do jQuery

Quantidade de visualizações: 8654 vezes
Nesta dica eu mostro como podemos usar o método val() da biblioteca jQuery para obter o conteúdo dos elementos de formulários HTML.

Veja, por exemplo, como obter o conteúdo de uma caixa de texto com o id "nome":

<script type="text/javascript">
<!--
  function obterTexto(){
    var texto = $('#nome').val();
    window.alert(texto);
  }
//-->
</script>

Lembre-se de que este método atuará apenas no primeiro da possível série de elementos retornados sob uma determinada condição.

O retorno val() do jQuery é uma string.


Java ::: Classes e Componentes ::: JButton

Como definir a cor do texto de um botão JButton do Java Swing

Quantidade de visualizações: 9595 vezes
Nesta dica eu mostrarei como é possível definir a cor do texto de um componente JButton do Java Swing. Para isso nós usamos o método setForeground() da classe JButton, fornecendo a cor desejada, por exemplo, Color.RED.

Veja um exemplo Java Swing completo:

package arquivodecodigos;
 
import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
  public Estudos() {
    super("Estudos Swing");
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
 
    // Cria um JButton com a cor do texto vermelho
    JButton btn1 = new JButton("Clique Aqui!");
    btn1.setForeground(Color.RED);
 
    // Cria um JButton com a cor de fundo verde
    JButton btn2 = new JButton("Clique Aqui!");
    btn2.setForeground(Color.GREEN);
 
    // Adiciona os botões à janela
    c.add(btn1);
    c.add(btn2);  
 
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Delphi ::: VCL - Visual Component Library ::: TListBox

Como pesquisar e selecionar um item em uma ListBox do Delphi

Quantidade de visualizações: 16850 vezes
O trecho de código abaixo mostra como podemos usar a mensagem LB_SELECTSTRING da Windows API para pesquisar e selecionar um item em uma ListBox. Veja que aqui eu usei a função InputBox() para permitir ao usuário inserir o texto a ser pesquisado. Note também o valor -1 fornecido como wParam para a função SendMessage(). Este valor faz com que a busca se inicie no primeiro item da lista e continue até o final da lista. Veja o código:

procedure TForm1.Button2Click(Sender: TObject);
var
  pesquisa: string;
begin
  // vamos solicitar o texto a ser pesquisado na ListBox
  pesquisa := InputBox('Pesquisar', 'Informe o texto', '');

  // vamos pesquisar e selecionar o item encontrado
  if SendMessage(ListBox1.Handle, LB_SELECTSTRING, - 1,
      Longint(PChar(pesquisa))) <> LB_ERR then
    begin
      ShowMessage('O texto pesquisado foi encontrado no ' +
        'índice: ' + IntToStr(ListBox1.ItemIndex));
    end
  else
    begin
      ShowMessage('O texto pesquisado não foi encontrado.');
    end;
end;

Note que a busca efetuada por LB_SELECTSTRING não é sensitiva a maiúsculas e minúsculas. Assim, Osmar e OSMAR são tratadas igualmente.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Um laço for que conta de 0 até 10

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

Escreva uma aplicação console Java que usa o laço for para contar de 0 até 10. Faça dois exemplos. No primeiro você deverá escrever os valores na horizontal e no segundo você deverá escrever os valores na vertical:

Resposta/Solução:

Este exercício é um dos primeiros sobre o uso de laços nos cursos de Java e você pode fazer usando o Bloco de Notas, Netbeans, Eclipse ou sua IDE favorita. Veja o código que usa o laço for para contar de 0 até 10 e exibir os valores na horizontal:

public static void main(String[] args){
  // laço for que conta de 0 até 10 e exibe os valores na horizontal
  for(int i = 0; i <= 10; i++){
    System.out.print(i + "  ");
  }
}

Quando você executar este código, os valores deverão ser impressos da seguinte forma:

0  1  2  3  4  5  6  7  8  9  10

Agora, veja como uma pequena modificação faz com que os valores sejam impressos na vertical:

public static void main(String[] args){
  // laço for que conta de 0 até 10 e exibe os valores na vertical
  for(int i = 0; i <= 10; i++){
    System.out.println(i + "  ");
  }
}

Agora os valores serão exibidos da seguinte forma:

0  
1  
2  
3  
4  
5  
6  
7  
8  
9  
10



Ruby ::: Dicas & Truques ::: Strings e Caracteres

Como concatenar strings em Ruby usando o operador +

Quantidade de visualizações: 9652 vezes
Nesta dica mostrarei como podemos usar o operador + (operador de adição ou soma) para concatenar strings na linguagem Ruby. Veja:

frase1 = "Gosto muito de Ruby"
frase2 = " e de Java"

# vamos concatenar as duas strings
res = frase1 + frase2

# exibe o resultado
puts res

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

Gosto muito de Ruby e de Java


jQuery ::: Dicas & Truques ::: Manipulação e Conteúdo Dinâmico

Como adicionar conteúdo ao final de um elemento HTML usando a função append() do jQuery

Quantidade de visualizações: 973 vezes
O método append() permite adicionar conteúdo ao final de um elemento HTML. Este conteúdo pode ser um seletor, um elemento HTML, uma string HTML ou um objeto jQuery.

Veja um trecho de código no qual adicionamos mais um linha de texto a um parágrafo:

<script type="text/javascript">
<!--
  function adicionarConteudo(){
    var texto = "<br>Mais uma linha.";
    $("#parag").append(texto);
  }
//-->
</script>

O método append() opera em todos os elementos HTML retornados sob uma determinação condição. O retorno do método é um objeto jQuery que pode ser usado para fins de encadeamento de chamadas de métodos.

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


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 Apenas R$ 19,90


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