![]() |
|
||||
|
|||||
Você está aqui: Cards de |
||
|
||
|
|
||
C# ::: Dicas & Truques ::: Gráficos |
Como desenhar texto em C# usando o método DrawString() da classe GraphicsQuantidade de visualizações: 9057 vezes |
Em algumas situações precisamos desenhar uma string (texto) no formulário ou algum outro controle. Para isso podemos usar o método DrawString() da classe Graphics. A assinatura mais comumente usada deste método é:Graphics.DrawString(String, Font, Brush, Single, Single) Note que precisamos fornecer a string a ser desenhada, a fonte a ser usada (como um objeto da classe Font), a cor e preenchimento (um objeto de alguma classe que herde de Brush) e as coordenadas x e y. Veja um trecho de código no qual desenhamos a string "Arquivo de Códigos" no formulário:
private void button1_Click(object sender, EventArgs e){
// vamos obter o Graphics do formulário
Graphics g = this.CreateGraphics();
// vamos desenhar a string "Arquivo de Códigos"
g.DrawString("Arquivo de Códigos", this.Font, new
SolidBrush(Color.Red), 40, 60);
// vamos liberar o objeto Graphics
g.Dispose();
}
Aqui a string será desenhada usando a fonte do formulário e na cor vermelha e sólida. Se quiséssemos definir a fonte, o código ficaria algo assim:
g.DrawString("Arquivo de Códigos", new Font("Verdana", 30),
new SolidBrush(Color.Red), 40, 60);
As coordenadas x e y nas quais o desenho ocorrerá podem ser informadas como um objeto da estrutura PointF. Veja:
g.DrawString("Arquivo de Códigos", new Font("Verdana", 30),
new SolidBrush(Color.Red), new PointF(80f, 120f));
|
Java ::: Classes, Controles e Componentes ::: JSplitPane |
Java Swing - Como usar a classe JSplitPane para dividir o espaço ocupado pelos componentes de suas aplicações Java SwingQuantidade de visualizações: 10915 vezes |
A classe JSplitPane é usada quando precisamos controlar o espaço ocupado por dois ou mais componentes. Objetos desta classe podem ser redimensionados, de modo a aumentar ou diminuir a área ocupada por um dos componentes. Veja a posição desta classe na hierarquia de classes Java:
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JSplitPane
No trecho de código abaixo você verá como é possível dividir a área ocupada por duas áreas de texto (JTextArea). Execute a aplicação e experimente aumentar ou diminuir o espaço ocupado pelos componentes:
import javax.swing.*;
import java.awt.*;
public class Estudos extends JFrame{
public Estudos(){
super("Como usar a classe JSplitPane");
// primeira área de texto
JTextArea textArea1 = new JTextArea(5, 30);
textArea1.setText("Sou a área de texto 1.");
JScrollPane sPane1 = new JScrollPane(textArea1);
// segunda área de texto
JTextArea textArea2 = new JTextArea(5, 30);
textArea2.setText("Sou a área de texto 2.");
JScrollPane sPane2 = new JScrollPane(textArea2);
// Cria o JSplitPane
JSplitPane splitPane = new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT, sPane1, sPane2);
add(splitPane, BorderLayout.CENTER);
setSize(300, 150);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Ao executar esta aplicação Java Swing nós teremos o seguinte resultado: ![]() |
VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução Continue para abandonar a iteração atual de um laço em VB.NETQuantidade de visualizações: 8315 vezes |
A instrução Continue pode ser usada com os laços do VB.NET para abandonar a iteração atual do laço. Veja como isso funciona no trecho de código abaixo:
For valor As Integer = 1 To 10 Step 1
If valor Mod 2 = 0 Then
Continue For
End If
Console.WriteLine(valor)
Next
Este trecho de código exibirá os números ímpares de 1 a 10. Os números exibidos serão: 1, 3, 5, 7 e 9. Isso aconteceu porque temos uma instrução If que testa se o valor da variável de controle é par. Se o teste resultar verdadeiro, a instrução Continue é executada e a iteração atual é abandonada, fazendo com que o valor atual não seja exibido na tela. Veja mais um exemplo:
Dim valor As Integer = 0
While valor < 10
valor += 1
If valor = 5 Then
Continue While
End If
Console.WriteLine(valor)
End While
Este trecho de código conta de 1 a 10, mas pula o número 5. Analise-o cuidadosamente e tente descobrir o porquê. |
JavaScript ::: W3C DOM - (Wide Web Consortium) Document Object Model ::: Navegação e Pesquisa de Nós (Nodes) |
Como retornar uma coleção de nós filhos de um elemento HTML usando a propriedade childNodes do DOM do JavaScriptQuantidade de visualizações: 13311 vezes |
|
Em algumas situações temos um elemento HTML (um elemento DIV, por exemplo) e gostaríamos de retornar uma coleção contendo seus elementos filhos. Para isso podemos usar a coleção childNodes, definida no World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1. A coleção childNodes contém todos os descendentes diretos de um determinado elemento HTML, incluindo os nós textos (text nodes) e comentários (comment nodes). Além disso, a ordem dos elementos retornados é aquela definida no código-fonte do documento HTML. Veja uma página HTML contendo um elemento DIV e, dentro deste, um parágrafo, um link e um elemento SPAN. Note como usamos a propriedade childNodes no elemento DIV para retornar seus três elementos filhos diretos (note que as quebras de linhas e o elemento BR também serão retornados):
<html>
<head>
<title>Estudos JavaScript</title>
<script type="text/javascript">
function obterNosFilhos(){
// vamos obter uma referência ao elemento div com o id "container"
var pai = document.getElementById("container");
// vamos obter a coleção de elementos filhos
var filhos = pai.childNodes;
// vamos obter a quantidade de elementos filhos deste elemento
window.alert("O elemento div contém " + filhos.length +
" elementos filhos.");
// vamos percorrer todos os elementos
for(var i = 0; i < filhos.length; i++){
var filho = filhos[i];
// este filho é um nó texto?
if(filho.nodeType == 3){
window.alert("O " + (i + 1) + "º filho é um nó texto. " +
"Seu conteúdo é: " + filho.data);
}
// este filho é um nó elemento?
else if(filho.nodeType == 1){
window.alert("O " + (i + 1) + "º filho é um nó elemento. " +
"Seu conteúdo é: " + filho.innerHTML);
}
}
}
</script>
</head>
<body>
<div id="container">
<p>Sou um parágrafo</p>
<a href="http://www.google.com">Sou um link</a><br>
<span>E eu sou um elemento span</span>
</div>
<br>
<button onclick="obterNosFilhos()">Obter nós filhos do elemento div</button>
</body>
</html>
Ao executarmos este código JavaScript nós teremos o seguinte resultado: O elemento div contém 8 elementos filhos. O 1º filho é um nó texto. Seu conteúdo é: O 2º filho é um nó elemento. Seu conteúdo é: Sou um parágrafo O 3º filho é um nó texto. Seu conteúdo é: O 4º filho é um nó elemento. Seu conteúdo é: Sou um link O 5º filho é um nó elemento. Seu conteúdo é: O 6º filho é um nó texto. Seu conteúdo é: O 7º filho é um nó elemento. Seu conteúdo é: E eu sou um elemento span O 8º filho é um nó texto. Seu conteúdo é: Ao executar este exemplo você perceberá que a quantidade de elementos filhos no IE é diferente daquela relatada pelo Firefox. Isso acontece devido à forma que os dois browsers tratam quebras de linhas e espaços. Tenha a certeza de usar a propriedade nodeType para identificar o tipo de elemento filho sendo retornado. A coleção childNodes pode ser chamada a partir dos seguintes elementos: a, abbr, acronym, address, applet, b, bdo, big, blink, blockquote, body, button, caption, center, cite, code, col, colgroup, dd, del, dfn, dir, div, dl, dt, em, fieldset, font, form, frameset, h1, h2, h3, h4, h5, h6, head, html, i, img, ins, kbd, keygen, label, legend, li, listing, map, marquee, menu, nobr, noframes, noscript, object, ol, optgroup, option, p, plaintext, pre, q, rt, ruby, s, samp, select, small, span, strike, strong, sub, sup, table, tbody, td, textarea, tfoot, th, thead, tr, tt, u, ul, var, xml e xmp. Esta dica foi escrita e testada no Google Chrome 127.0.6533.122 (Versão oficial) 64 bits. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercício Resolvido de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash tableQuantidade de visualizações: 2823 vezes |
|
Exercícios Resolvidos de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash table Pergunta/Tarefa: Dadas duas palavras p1 e p2, escreva um código Python que informa se uma palavra é anagrama da outra. Um anagrama é uma espécie de jogo de palavras criado com a reorganização das letras de uma palavra ou expressão para produzir outras palavras ou expressões, utilizando todas as letras originais exatamente uma vez. Para esta solução você deverá, obrigatoriamente, usar um dicionário Python, ou seja, um objeto dict. O objetivo é construir duas tabelas de frequências dos caracteres de cada palavra. Dicionários em Python são similares às tabelas hash (hash tables) em outras linguagens de programação. Seu programa deverá exibir a seguinte saída: ![]() Resposta/Solução: Veja a resolução com código comentado em Python:
# método que recebe duas palavras e retorna
# verdadeiro se uma palavra for anagrama da
# outra
def anagramas(palavra1, palavra2):
# o primeiro passo é verificar se os comprimentos das duas
# palavras são iguais
if(len(palavra1) != len(palavra2)):
return False
# agora criamos dois dictionaries para as frequencias de
# cada uma das palavras
freq_p1 = {}
freq_p2 = {}
# agora registramos as frequências de letras na primeira
# palavra
for letra in palavra1:
# a letra já está no dicionário?
if letra in freq_p1:
freq_p1[letra] += 1 # aumenta a frequêcia desta letra
else:
freq_p1[letra] = 1 # ainda não estava no dicionário
# agora registramos as frequências de letras na segunda
# palavra
for letra in palavra2:
# a letra já está no dicionário?
if letra in freq_p2:
freq_p2[letra] += 1 # aumenta a frequêcia desta letra
else:
freq_p2[letra] = 1 # ainda não estava no dicionário
# registradas as frequências de letras das duas palavras,
# chegou a hora de compararmos os dois dicionários
for chave in freq_p1:
# esta chave não está no segundo dicionário ou
# possui valores diferentes?
if chave not in freq_p2 or freq_p1[chave] != freq_p2[chave]:
return False
# se chegou até aqui então uma palavra é anagrama da outra
return True
def main():
# vamos ler duas palavras e verificar se uma é anagrama da outra
palavra1 = input("Informe a primeira palavra: ")
palavra2 = input("Informe a segunda palavra: ")
# vamos chamar o método que faz a verificação
if(anagramas(palavra1, palavra2)):
print("As duas palavras são anagramas")
else:
print("As duas palavras não são anagramas")
if __name__== "__main__":
main()
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
|
Java - Java Swing - Como criar sua primeira JTree usando um vetor de nomes de linguagens de programação Android Java - Como usar a classe Toast em suas aplicações Android |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |








