Python ::: Matplotlib Python Library (Biblioteca Python Matplotlib) ::: Geração e Plotagem de Gráficos usando Matplotlib

Como gerar o gráfico da função seno usando a biblioteca Matplotlib do Python

Quantidade de visualizações: 2668 vezes
Sabemos, como lembrança das nossas aulas de Trigonometria no segundo grau, que a função seno é a razão entre o cateto oposto e a hipotenusa de um triângulo retângulo, ou seja, trata-se de uma razão trigonométrica que retorna valores na faixa de -1 até 1 (ambos inclusos).

Nesta dica mostrarei como podemos usar as capacidades de geração de gráficos da biblioteca Matplotlib da linguagem Python, combinadas com as funções arange() e sin() da biblioteca NumPy para gerar o gráfico da função seno.

Antes de vermos o código, observe o resultado gerado na imagem a seguir:



Veja agora o código Python completo para a geração do gráfico:

# importamos a biblioteca NumPy
import numpy as np
#importamos a biblioteca Matplotlib
import matplotlib.pyplot as plt
 
def main():
  # definimos o título para a área de plotagem
  plt.title('Gráfico da Função Seno')
 
  # vamos exibir o grid da área de plotagem
  plt.grid(True)
 
  # vamos definir os valores da coordenada x
  # os valores gerados serão de 0 até 12 (não incluído)
  eixo_x = np.arange(0, 12, 0.1)

  # os valores da coordenada y serão o seno de
  # cada valor correspondente no eixo x
  eixo_y = np.sin(eixo_x)
 
  # vamos plotar a função seno agora
  plt.plot(eixo_x, eixo_y)
 
  # finalmente exibimos o resultado
  plt.show()
 
if __name__== "__main__":
  main()



C# ::: Windows Forms ::: TextBox

C# Windows Forms Avançado - Como rolar as linhas de um TextBox para baixo uma de cada vez usando a API do Windows

Quantidade de visualizações: 7256 vezes
Em algumas situações gostaríamos de rolar para baixo o conteúdo de um TextBox de múltiplas linhas uma linha de cada vez. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_LINEDOWN para seu parâmetro wParam. O valor do parâmetro lParam é zero.

Veja um trecho de código que rola para baixo o conteúdo de um TextBox uma linha de cada vez. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem.

Comece adicionando a linha:

using System.Runtime.InteropServices;

na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método:

[DllImport("user32.dll", EntryPoint = "SendMessage", 
  CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, 
  IntPtr wParam, IntPtr lParam);

Finalmente coloque o código abaixo no evento Click de um botão:

private void button2_Click(object sender, EventArgs e){
  // antes de executar este exemplo certifique-se de que
  // a propriedade Multiline do TextBox esteja definida
  // como true e a propriedade ScrollBars contenha o valor
  // Vertical ou Both
  textBox1.Multiline = true;
  textBox1.ScrollBars = ScrollBars.Vertical;
    
  // constante para a mensagem WM_VSCROLL
  const uint WM_VSCROLL = 0x115;
  // constante para o parâmetro wParam
  const int SB_LINEDOWN = 1;
  
  // handle para a caixa de texto
  IntPtr handle = textBox1.Handle;
  IntPtr wParam = (IntPtr)SB_LINEDOWN;
  IntPtr lParam = IntPtr.Zero;
  
  // vamos fazer com que o TextBox role uma linha para baixo
  SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam);
}



Delphi ::: Dicas & Truques ::: Strings e Caracteres

Como converter todo o conteúdo de uma string para letras maiúsculas em Delphi usando a função AnsiUpperCase()

Quantidade de visualizações: 17243 vezes
Algumas vezes precisamos converter todo o conteúdo de uma string para letras maiúsculas. Em Delphi isso pode ser feito com o auxílio da função AnsiUpperCase(). Esta função recebe uma string e retorna outra string com todos os caracteres maiúsculos. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  nome: string;
begin
  nome := 'Osmar';

  // vamos converter a string para letras maiúsculas
  nome := AnsiUpperCase(nome);

  // exibe o resultado
  ShowMessage(nome);
end;

Note que esta função suporta caracteres de mais de um byte e com acentuações.

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


Python ::: Dicas & Truques ::: Lista (List)

Como criar uma lista Python vazia e adicionar itens a ela usando o laço for..in

Quantidade de visualizações: 11973 vezes
Nesta dica mostrarei como é possível usar o operador de vetor "[]" para criar um objeto List vazio na linguagem Python. Em seguida usaremos o laço for..in para adicionar 10 elementos a esta lista.

Veja o código completo para o exemplo:

"""
  Este exemplo mostra como criar uma list
  vazia e inicializá-la usando o laço for.
"""

def main():
  # cria uma lista vazia
  valores = []
 
  # adiciona valores a ela
  for num in range(1, 11):
    valores += [(num * 2)]
 
  # exibe os valores da lista
  for num in valores:
    print(num)

if __name__== "__main__":
  main()

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

2
4
6
8
10
12
14
16
18
20


R ::: Dicas & Truques ::: Strings e Caracteres

Como usar a função paste() da linguagem R para concatenar strings e valores de variáveis

Quantidade de visualizações: 3525 vezes
A função paste() do R é muito útil quando precisamos unir, ou seja, concatenar um texto, frase ou palavra com um ou vários valores de variáveis. Vamos ver um exemplo? Observe o seguinte trecho de código R:

> nome <- "Osmar" [ENTER]
> idade <- 38 [ENTER]
> paste("Nome é", nome, "e idade é", idade) [ENTER]
[1] "Nome é Osmar e idade é 38"
> 

Ao executar estas linhas nós teremos o seguinte resultado:

Nome é Osmar e idade é 38

Note que declaramos e atribuimos às variáveis nome e idade e depois usamos a função paste() para concatenar os valores dessas duas variáveis e exibir o resultado como parte de uma frase.

É importante observar que a função paste() retorna uma string. Veja este novo exemplo:

> nome <- "Osmar" [ENTER]
> idade <- 38 [ENTER]
> res <- paste("Nome é", nome, "e idade é", idade) [ENTER]
> print(res) [ENTER]
[1] "Nome é Osmar e idade é 38"
> 

Note que o resultado é o mesmo. Porém, dessa vez nós guardamos o resultado da chamada à função paste() em uma variável res e depois usamos a função print() para exibir o seu conteúdo.


C ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como testar múltiplas condições usando a construção if...else if...else da linguagem C

Quantidade de visualizações: 12107 vezes
Em algumas situações precisamos usar a estrutura condicional if...else (se...senão) da linguagem C para testarmos múltiplas condições. Para estes casos, o C nos permite combinar if...else if...else várias vezes.

Veja o trecho de código a seguir:

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]){
  int valor = 20;
 
  if(valor == 15){
    printf("O valor a igual a 15");
  }
  else if(valor > 15){
    printf("O valor e maior que 15");
  }
  else{
    printf("O valor e menor que 15");
  }
 
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

O valor é maior que 15


C ::: Desafios e Lista de Exercícios Resolvidos ::: Geometria Analítica e Álgebra Linear

Exercício Resolvido de C - Como calcular o quadrante de uma coordenada cartesiana em C

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

O Plano Cartesiano, ou Sistema de Coordenadas Cartesianas, é formado por duas retas reais perpendiculares, ou seja, o ângulo entre elas é de 90 graus. Essas retas determinam um único plano, que é denominado como sistema ortogonal de coordenadas cartesianas ou somente plano cartesiano.

No ano de 1637, René Descartes teve a brilhante ideia de relacionar álgebra e geometria, dando início à conhecida geometria analítica, método que possibilita descrever a geometria utilizando uma menor quantidade de diagramas e desenhos. Apesar de os créditos dessa descoberta serem dados a Descartes, Pierre de Fermat já conhecia e utilizava alguns conceitos de geometria analítica, logo o plano cartesiano.

Há quatro quadrantes no Sistema de Coordenadas Cartesianas, conforme a figura a seguir:



Como podemos ver, no primeiro quadrante, tanto o x quanto o y são positivos. No segundo quadrante o x é negativo e o y é positivo. No terceiro quadrante, tanto o x quanto o y são negativos. Por fim, no quarto quadrante, o x é positivo e o y é negativo.

Escreva um programa C que pede para o usuário informar os valores x e y de uma coordenada cartesiana e informe em qual quadrante essa coordenada se situa. Se os valores de x e y forem zero, informe que o ponto se situa na origem do plano cartesiano.

Sua saída deverá ser parecida com:

Informe o valor x da coordenada: 12
Informe o valor y da coordenada: -7
A coordenada (12,-7) está no Quarto Quadrante (+,-)
Resposta/Solução:

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

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  int x, y;
  
  setlocale(LC_ALL,""); // para acentos do português
 
  // vamos pedir para o usuário informar as coordenadas
  printf("Informe o valor x da coordenada: ");
  scanf("%d", &x);
  printf("Informe o valor y da coordenada: ");
  scanf("%d", &y);
  
  // a coordenada está no primeiro quadrante? 
  if (x > 0 && y > 0){
    printf("A coordenada (%d,%d) está no Primeiro Quadrante (+,+)", x, y);
  }
  // a coordenada está no segundo quadrante?
  else if (x < 0 && y > 0){
    printf("A coordenada (%d,%d) está no Segundo Quadrante (-,+)", x, y);
  }
  // a coordenada está no terceiro quadrante?
  else if (x < 0 && y < 0){
    printf("A coordenada (%d,%d) está no Terceiro Quadrante (-,-)", x, y);
  }
  // a coordenada está no quarto quadrante?
  else if (x > 0 && y < 0){
    printf("A coordenada (%d,%d) está no Quarto Quadrante (+,-)", x, y);
  }
  // a coordenada está na origem
  else{
    printf("A coordenada (%d,%d) está na origem", x, y);
  }
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



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

Como passar vetores e matrizes (arrays) para seus métodos Java

Quantidade de visualizações: 16313 vezes
Nesta dica mostrarei como você pode passar um array (vetor ou matriz) para seus métodos Java. Observe que um array é um objeto Java, e objetos são sempre passados por referência. Assim, as alterações feitas no vetor ou matriz dentro do método afetarão o array original.

Veja o código completo para o exemplo:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    int[] valores = {43, 6, 17, 23, 8};
     
    // Exibe os valores antes de passar o
    // array para o método multiplicar
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + ", ");
    }
   
    System.out.println();
 
    // fornece o array para o método multiplicar
    multiplicar(valores, 2); 
 
    // Exibe os valores depois de passar o
    // array para o método multiplicar
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + ",  ");
    }
 
    System.exit(0);
  }
 
  public static void multiplicar(int a[], int num){
    for(int i = 0; i < a.length; i++){
      a[i] = a[i] * num;
    }
  } 
}

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

43, 6, 17, 23, 8,
86, 12, 34, 46, 16,


Java ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar null em Java

Quantidade de visualizações: 31957 vezes
O tipo de dados null é um tipo (ou valor) especial que indica que uma referência não está apontando para nenhum objeto, ou seja, aponta para uma posição de memória nula. Este tipo pode ser atribuído (ou testado) apenas a referências. Seu uso não é permitido com primitivos.

Veja um trecho de código no qual definimos que uma variável do tipo String aponta para um objeto nulo:

public class Estudos{
  public static void main(String args[]){
    String nome = null;  

    System.out.println(nome.length());    

    System.exit(0);
  }
}

Este código compila normalmente. Porém, ao tentarmos executá-lo, temos uma exceção de tempo de execução NullPointerException:

Exception in thread "main" 
java.lang.NullPointerException
  at Estudos.main(Estudos.java:5)


Isso aconteceu porque estamos tentando executar um método de um objeto que não existe.

Uma técnica muito valiosa é testar se uma referência não está apontando para um objeto nulo. Veja como isso é feito:

public class Estudos{
  public static void main(String args[]){
    String nome = null;  

    if(nome != null)
      System.out.println(nome.length());    
    else
      System.out.println("Objeto é nulo.");      

    System.exit(0);
  }
}

Tenha em mente que, quando uma referência recebe o valor null, o objeto para o qual ela apontava fica imediatamente disponível para o coletor de lixo (Garbagge Colector), ou seja, a memória ocupada pelo objeto pode ser liberada a qualquer momento.

Veja agora o que acontece quando tentamos atribuir o valor null a um primitivo:

public class Estudos{
  public static void main(String args[]){
    int valor = null;     

    System.exit(0);
  }
}

Eis a mensagem de erro de compilação:

Estudos.java:3: incompatible types
found   : <nulltype>
required: int
 int valor = null;
             ^
1 error



PHP ::: PHP + MySQL ::: MySQL Improved Extension (mysqli)

Listando todas as tabelas da base de dados selecionada - Como listar as tabelas de uma base de dados MySQL usando PHP - Revisado

Quantidade de visualizações: 12320 vezes
O comando DML SHOW TABLES do MySQL permite listar todas as tabelas de um determinado banco de dados. Nesta dica eu mostro como escrever um código PHP que dispara este comando e mostra o resultado. Note que estou usando a extensão mysqli, recomendada a partir do PHP 5.6.

Veja o código completo:

<?
  // vamos efetuar a conexão com o banco
  $con = new mysqli("localhost", "root",
    "osmar1234", "estudos");
 
  // conexão efetuada com sucesso?
  if($con->connect_errno){
    echo "Não foi possível efetuar a conexão: " . 
      $mysqli->connect_error;
    exit(); // vamos sair daqui 
  }   

  // lista todas as tabelas da base selecionada
  $query = mysqli_query($con, "SHOW TABLES");
  while($result = mysqli_fetch_array($query)){  
    echo $result[0] . "<br>";
  }
?>

Esta dica foi revisada, atualizada e testada no PHP 8.

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