HTML5 ::: Referência Tags/Elementos HTML5 ::: Tag/Elemento <Video> |
Como usar a tag/elemento <video> do HTML5 em suas aplicações webQuantidade de visualizações: 1718 vezes |
A tag/elemento <video> do HTML5 é usada quando queremos incorporar um vídeo em nossos documentos HTML sem incluir plugs adicionais, tais como o Flash Player. Contudo, o suporte a este elemento pode variar de navegador para navegador (faça testes com seus navegadores alvos antes). Em geral, navegadores que dão suporte ao elemento <video> suportam os seguintes formatos de vídeo: MP4, Ogg e WebM. Veja um documento HTML que carrega um vídeo MP4: <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Como usar a tag video do HTML5</title> </head> <body> <video controls="controls" src="filme.mp4"> Seu browser não dá suporte ao elemento video do HTML5. </video> </body> </html> Quando você abrir esta página HTML, você verá um vídeo na tela já com os controles para iniciar, pausar, e parar a execução (contanto que você tenha informado um endereço válido para o vídeo). Note que não especificamos o tamanho do vídeo na página, o que fará com que o elemento <video> tenha as dimensões do vídeo que foi carregado. |
C++ ::: Win32 API (Windows API) ::: Passos Iniciais |
Como usar a função WinMain das aplicações C++ GUI usando a Windows APIQuantidade de visualizações: 9807 vezes |
Cada programa de interface gráfica escrito em C++ e usando a Windows API possui como ponto de entrada de execução, a função WinMain(). Esta função é a equivalente do main() em aplicações console. Veja sua assinatura:int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) É possível usar esta função sem a macro WINAPI, ou seja: int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) O primeiro passo a observar é que esta função deve retornar um valor inteiro quando finalizar. Isso serve para informar ao sistema operacional se algum erro ocorreu durante a tentativa de sua execução. Vejamos agora uma explicação detalhada de seus parâmetros: HINSTANCE hInstance - É um handle para o módulo executável do programa (o arquivo .exe na memória). HINSTANCE hPrevInstance - Sempre NULL para programas Win32. LPSTR lpCmdLine - Os argumentos da linha de comando como uma única string. Não inclui o nome do programa. int nCmdShow - Um valor inteiro que pode ser passado para a função ShowWindow(). hInstance é usado para tarefas tais como carregar recursos ou outras que são realizadas em um módulo. Um módulo é um EXE ou DLL carregada em seu programa. hPrevInstance era usado como um handle para uma instância executada anteriormente no Win16. Este cenário não mais ocorre. Em Win32 podemos ignorar por completo este parâmetro. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Python - Escreva um programa Python que leia os elementos de um vetor A de dez elementos inteiros e construa outro vetor BQuantidade de visualizações: 375 vezes |
Pergunta/Tarefa: Escreva um programa Python que leia os elementos de um vetor A de dez elementos inteiros e construa outro vetor B com seus elementos distribuídos da seguinte forma: Vetor A = [8, 5, 4, 1, 2, 3, 4, 6, 9, 7] Vetor B = [24, 10, 12, 2, 6, 6, 12, 12, 27, 14] Note que os elementos do vetor B seguem um padrão. Se o elemento do vetor A estiver em uma posição par, então o elemento do vetor B será o triplo do elemento do vetor A. Caso contrário o elemento do vetor B será o dobro do elemento do vetor A. Neste exercício a primeira posição/índice dos vetores é assumida como sendo zero. Em algumas linguagens de programação o primeiro índice é um e não zero. Sua saída deverá ser parecida com: Informe o valor do 1.o elemento: 8 Informe o valor do 2.o elemento: 5 Informe o valor do 3.o elemento: 4 Informe o valor do 4.o elemento: 1 Informe o valor do 5.o elemento: 2 Informe o valor do 6.o elemento: 3 Informe o valor do 7.o elemento: 4 Informe o valor do 8.o elemento: 6 Informe o valor do 9.o elemento: 9 Informe o valor do 10.o elemento: 7 Elementos do vetor A: 8, 5, 4, 1, 2, 3, 4, 6, 9, 7 Elementos do vetor B: 24, 10, 12, 2, 6, 6, 12, 12, 27, 14 Veja a resolução comentada deste exercício em Python: # função principal do programa def main(): # vamos declarar e construir dois vetores de 10 inteiros vetor_a = [0 for x in range(10)] vetor_b = [0 for x in range(10)] # agora vamos pedir para o usuário informar os valores # dos elementos do vetor A for i in range(len(vetor_a)): vetor_a[i] = int(input("Valor do %d.o elemento: " % ((i + 1)))) # vamos construir o vetor B for i in range(len(vetor_b)): # o índice atual é par? if i % 2 == 0: vetor_b[i] = vetor_a[i] * 3 else: vetor_b[i] = vetor_a[i] * 2 # vamos mostrar os elementos do vetor A print("\nElementos do vetor A:\n") for i in range(len(vetor_a)): print("%d, " % vetor_a[i], end=' ') # vamos mostrar os elementos do vetor B print("\n\nElementos do vetor B:\n") for i in range(len(vetor_b)): print("%d, " % vetor_b[i], end=' ') if __name__== "__main__": main() |
Python ::: Python para Engenharia ::: Unidades de Medida |
Como converter Centímetros Cúbicos em Metros Cúbicos em Python - Python para Física e EngenhariaQuantidade de visualizações: 417 vezes |
Em muitas situações nós temos uma medida de volume em cm3 e queremos transformá-la em m3, que é a medida de volume do Sistema Internacional (SI). Para isso só precisamos dividir os centímetros cúbicos por 1.000.000. Veja a fórmula: \[\text{Metros Cúbicos} = \frac{\text{Centímetros Cúbidos}}{1.000.000} \] Agora veja o código Python que pede para o usuário informar a medida de volume em centímetros cúbicos e a converte para metros cúbicos. Note que mostrei como exibir o resultado em notação científica e sem notação científica: # função principal do programa def main(): # vamos ler a medida em centímetros cúbicos cent_cubicos = float(input("Informe os centímetros cúbicos: ")) # agora calculamos os metros cúbicos met_cubicos = cent_cubicos / 1000000.00 # e mostramos o resultado print("Você informou {0} centímetros cúbicos.".format(cent_cubicos)) print("Isso equivale a {0} metros cúbicos.".format(met_cubicos)) print(f"Sem notação científica: {met_cubicos:.6f}") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe os centímetros cúbicos: 35 Você informou 35.0 centímetros cúbicos. Isso equivale a 3.5E-5 metros cúbicos. Sem notação científica: 0,000035 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como testar se um valor está contido em um array em JavaQuantidade de visualizações: 11303 vezes |
Pergunta/Tarefa: Escreva um programa Java GUI ou console que declara, constrói e inicializa um vetor (array unidimensional) de 5 inteiros. Em seguida peça ao usuário para informar um valor inteiro e informe se o valor lido está contido no vetor. A declaração, construção e inicialização do vetor pode ser feita da seguinte forma: // declara, constrói e inicializa um vetor de 5 inteiros int valores[] = {4, 21, 8, 120, 1}; Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: package estudos; import javax.swing.JOptionPane; public class Estudos { public static void main(String[] args) { // declara, constrói e inicializa um vetor de 5 inteiros int valores[] = {4, 21, 8, 120, 1}; // vamos ler um valor inteiro int pesquisa = Integer.parseInt(JOptionPane.showInputDialog("Valor:")); // vamos verificar se o valor informado está contido no vetor boolean encontrado = false; for(int i = 0; i < valores.length; i++){ if(valores[i] == pesquisa){ encontrado = true; break; } } if(encontrado){ JOptionPane.showMessageDialog(null, "O valor está no vetor"); } else{ JOptionPane.showMessageDialog(null, "O valor não está no vetor"); } } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Exercícios Resolvidos de Java - Programação Orientada a Objetos - Uma classe Temperatura que converte graus Celsius em Fahrenheit e vice-versaQuantidade de visualizações: 8057 vezes |
Exercício Resolvido de Java - POO - Programação Orientada a Objetos - Uma classe Temperatura que converte graus Celsius em Fahrenheit e vice-versa Pergunta/Tarefa: Escreva uma classe Java chamada Temperatura que converterá graus Celsius em Fahrenheit e vice-versa. Esta classe não possuirá nenhuma variável, nem de instância nem de classe, somente dois métodos, que deverão ter as seguintes assinaturas: double celsiusParaFahrenheit(double) double fahrenheitParaCelsius(double) Para facilitar a resolução, seguem abaixo as regras de conversão: Celsius para Fahrenheit: F = (1,8 x C) + 32 Fahrenheit para Celsius: C = (F - 32) / 1,8 Depois de escrever a classe Temperatura, use o método main() da classe principal da aplicação Java para testar suas funcionalides. Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: Código para a classe Temperatura.java: package arquivodecodigos; public class Temperatura { // converte de Celsius para Fahrenheit public double celsiusParaFahrenheit(double c){ double f = (1.8 * c) + 32; return f; } // converte de Fahrenheit para Celsius public double fahrenheitParaCelsius(double f){ double c = (f - 32) / 1.8; return c; } } Código para a classe Principal.java: package arquivodecodigos; import java.util.Scanner; public class Principal{ public static void main(String args[]){ // vamos criar um objeto da classe Temperatura Temperatura t = new Temperatura(); // vamos fazer a leitura do usuário Scanner entrada = new Scanner(System.in); // primeiro de Celsius para Fahrenheit System.out.print("Informe o grau em Celsius: "); double celsius = Double.parseDouble(entrada.nextLine()); System.out.println(celsius + " graus Celsius equivale a " + t.celsiusParaFahrenheit(celsius) + " graus Fahrenheit."); // agora de Fahrenheit para Celsius System.out.print("Informe o grau em Fahrenheit: "); double fahrenheit = Double.parseDouble(entrada.nextLine()); System.out.println(celsius + " graus Fahrenheit equivale a " + t.fahrenheitParaCelsius(fahrenheit) + " graus Celsius."); } } |
Python ::: wxPython ::: Eventos e Tratadores de Eventos |
Como tratar o evento wx.EVT_PAINT em suas aplicações wxPython - Interfaces gráficas no PythonQuantidade de visualizações: 142 vezes |
Nesta dica mostrarei como podemos tratar o evento wx.PaintEvent em suas aplicações wxPython. Este evento é disparado todas as vezes que uma janela é redesenhada, ou seja, quando fazemos o redimensionamento da janela ou a maximizamos. Veja o código completo para uma aplicação wxPython na qual interceptamos o evento wx.PaintEvent para exibir a hora atual na janela, usando a função dc.DrawText(). Note o uso da função strftime() para formatar o conteúdo de um objeto datetime. # vamos importar o framework wxPython import wx # mais alguns imports necessários from datetime import datetime import locale # classe que representará a janela principal da # aplicação wxPython class JanelaPrincipal(wx.Frame): # o método construtor def __init__(self, *args, **kw): # chama o construtor da classe wx.Frame super(JanelaPrincipal, self).__init__(*args, **kw) # Configurações do usuário locale.setlocale(locale.LC_ALL, '') # chama a função que inicializa a GUI self.InicializarGUI() # método usado para gerenciar o evento OnPaint def OnPaint(self, e): # Obtém um datetime da data e hora atual hoje = datetime.today() # vamos obter o contexto de desenho dc = wx.PaintDC(self) texto = "Evento OnPaint gerado às: {0}".format( hoje.strftime("%X")) dc.DrawText(texto, 20, 20) # função que inicializa a GUI do programa def InicializarGUI(self): self.Bind(wx.EVT_PAINT, self.OnPaint) # definimos o tamanho da janela self.SetSize((450, 350)) # define a cor de fundo da janela (Windows 10) self.SetBackgroundColour(wx.WHITE) # definimos o título da janela self.SetTitle('O evento OnPaint') # e centralizamos a janela self.Centre() # função principal do programa Python def main(): # vamos criar a aplicação wxPython app = wx.App() janela_principal = JanelaPrincipal(None) janela_principal.Show() app.MainLoop() if __name__ == "__main__": main() |
C ::: Dicas & Truques ::: Data e Hora |
Como usar o tipo time_t do header <time.h> da linguagem CQuantidade de visualizações: 5202 vezes |
O tipo time_t, presente no header <time.h> é usado quando precisamos representar datas e horas e, quando necessário, efetuar operações aritméticas envolvendo as mesmas. Este tipo é obtido por meio de uma chamada à função time(). Veja:#include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char *argv[]){ // declara uma variável do tipo time_t e atribui a ela // o resultado de uma chamada à função time() time_t hora_atual = time(NULL); printf("Segundos desde 01/01/1970: %d\n\n", hora_atual); system("PAUSE"); return 0; } Ao executar este trecho de código teremos algo parecido com: Segundos desde 01/01/1970: 1334017044 Como podemos ver, o tipo time_t é apenas um apelido para um long, como declarado no header time.h: typedef long time_t; Desta forma, time_t guarda a quantidade de segundos decorridos desde a meia-noite do dia 01/01/1970 UTC. |
C ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Ordenação e pesquisa em C - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 3054 vezes |
A ordenação Insertion Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando as cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim em diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem C agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}: #include <stdio.h> #include <stdlib.h> // função que permite ordenar um vetor de inteiros // usando a ordenação Insertion Sort void insertionSort(int vetor[], int tam){ int i, temp, j; // este laço varre os elementos a partir do segundo // elemento, ou seja, o índice 1 for(i = 1; i < tam; i++){ // guardamos o elemento atual em temp temp = vetor[i]; for(j = i; ((j > 0) && (vetor[j - 1] > temp)); j--){ vetor[j] = vetor[j - 1]; // houve uma troca } vetor[j] = temp; // colocamos temp em seu devido lugar } } int main(int argc, char *argv[]){ int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11}; int i, tamanho = 9; // imprime a matriz sem a ordenação puts("Sem ordenação:\n"); for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } // vamos ordenar a matriz insertionSort(valores, tamanho); // imprime a matriz ordenada puts("\n\nOrdenada usando Insertion Sort:\n"); for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de Java - O caractere ausente. Escreva um método Java que receba uma string não vazia e um inteiro positivo.Quantidade de visualizações: 957 vezes |
Pergunta/Tarefa: O desafio do caractere faltante. Escreva um programa Java contendo um método que receberá uma palavra, frase ou texto e um inteiro positivo. Este método deverá retornar a palavra, frase ou texto com o caractere removido no índice especificado pelo inteiro fornecido como segundo argumento para o método. Certifique-se de que a string passada para o método não esteja vazia e de que o valor inteiro no segundo argumento não esteja fora da faixa permitida, ou seja, não seja menor que 0 nem maior que o comprimento da string - 1. Sua saída deverá ser parecida com: Informe uma palavra, frase ou texto: JAVASCRIPT Informe um número inteiro: 4 O resultado é: JAVACRIPT Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; public class Estudos{ public static void main(String args[]){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar uma palavra, frase ou texto System.out.print("Informe uma palavra, frase ou texto: "); String str = entrada.nextLine().trim(); // agora vamos pedir para o usuário informar um número inteiro System.out.print("Informe um número inteiro: "); int indice = Integer.parseInt(entrada.nextLine()); // os dados são válidos? if(str.isEmpty()){ System.out.println("\nA string informada está vazia\n"); } else if(indice < 0 || indice > str.length() - 1){ System.out.println("\nO índice não está na faiza permitida\n"); } else{ String resultado = caractereFaltante(str, indice); System.out.println("O resultado é: " + resultado); } } public static String caractereFaltante(String str, int indice){ // primeiro nós obtemos uma substring que vai do primeiro // índice até o indice informado pelo usuário, sem incluí-lo String inicio = str.substring(0, indice); // agora obtemos o restante da string a partir do índice informado // pelo usuário, sem incluí-lo, é claro String fim = str.substring(indice + 1, str.length()); return inicio + fim; } } |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
Fórmulas da Física - Fórmula da Velocidade - Como calcular a velocidade quando temos a distância percorrida e o tempo gasto Java - Estruturas de Dados em Java - Como inserir nós no final de uma lista singularmente ligada em Java Java - Como adicionar conteúdo a um arquivo texto existente em Java usando BufferedWriter e FileWriter |
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 |