Portugol ::: Dicas & Truques ::: Cadeias e Caracteres |
Como testar se uma sub-cadeia está contida em uma cadeia de caracteres em Portugol usando a função posicao_texto()Quantidade de visualizações: 489 vezes |
Nesta dica mostrarei como podemos verificar se uma substring está contida em uma string em Portugol. Para isso nós vamos usar a função posicao_texto() da biblioteca Texto. A função posicao_texto() pede a sub-cadeia a ser pesquisada, a cadeia na qual a pesquisa será feita e o índice do primeiro caractere a partir do qual a sub-string será pesquisada. Se a substring for encontrada, a função retorna a posição do primeiro caractere. Caso contrário o valor -1 será retornado. Veja o código completo para um programa Portugol no qual testamos se uma palavra está contida em uma frase: programa { // vamos importar a biblioteca Texto inclua biblioteca Texto --> tx funcao inicio() { // vamos criar uma frase cadeia frase = "Gosto de programar em Portugol" // vamos criar uma sub-cadeia cadeia palavra = "Portugol" // vamos verificar se a sub-cadeia está contida na cadeia se (tx.posicao_texto(palavra, frase, 0) != -1) { escreva("A substring está contida na string") } senao { escreva("A substring não está contida na string") } } } Ao executar este código Portugol nós teremos o seguinte resultado: A substring está contida na string. |
VB.NET ::: VB.NET para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular vetor unitário em VB.NET - VB.NET para Física e EngenhariaQuantidade de visualizações: 615 vezes |
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$. O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$. O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor. Então, vejamos a fórmula para a obtenção do vetor unitário: \[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\] Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível. Veja agora o código VB.NET que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário: Imports System Module Program Sub Main(args As String()) ' vamos ler os valores x e y Console.Write("Informe o valor de x: ") Dim x = Double.Parse(Console.ReadLine()) Console.Write("Informe o valor de y: ") Dim y = Double.Parse(Console.ReadLine()) ' o primeiro passo é calcular a norma do vetor Dim norma = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2)) ' agora obtemos as componentes x e y do vetor unitário Dim u_x = x / norma Dim u_y = y / norma ' mostra o resultado Console.WriteLine("O vetor unitário é: (x = " & u_x & "; y = " & u_y) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: Informe o valor de x: -4 Informe o valor de y: 6 O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437 Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço: Imports System Module Program Sub Main(args As String()) ' vamos ler os valores x, y e z Console.Write("Informe o valor de x: ") Dim x = Double.Parse(Console.ReadLine()) Console.Write("Informe o valor de y: ") Dim y = Double.Parse(Console.ReadLine()) Console.Write("Informe o valor de z: ") Dim z = Double.Parse(Console.ReadLine()) ' o primeiro passo é calcular a norma do vetor Dim norma = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2) + Math.Pow(z, 2)) ' agora obtemos as componentes x, y e z do vetor unitário Dim u_x = x / norma Dim u_y = y / norma Dim u_z = z / norma ' mostra o resultado Console.WriteLine("O vetor unitário é: (x = " & u_x & "; y = " & u_y & "; z = " & u_z) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executarmos este novo código nós teremos o seguinte resultado: Informe o valor de x: 3 Informe o valor de y: 7 Informe o valor de z: 5 O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517 |
JavaScript ::: Dicas & Truques ::: Data e Hora |
Como subtrair dias de uma data em JavaScript - Data e horas em JavaScriptQuantidade de visualizações: 16792 vezes |
Em algumas situações, principalmente quando estamos desenvolvendo aplicações que envolvem datas, horas e calendários em JavaScript, nós precisamos subtrair dias de uma data. Nesta dica eu mostro como isso pode ser feito. Veja o código completo abaixo: <html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> function subtrairDias(data, dias){ return new Date(data.getTime() - (dias * 24 * 60 * 60 * 1000)); } document.write('Hoje é: ' + (new Date()).toLocaleDateString() + '<br>'); document.write('5 dias atrás era: ' + subtrairDias(new Date(), 5).toLocaleDateString()); </script> </body> </html> Ao executarmos este código nós teremos o seguinte resultado: Hoje é: 25/03/2021 5 dias atrás era: 20/03/2021 |
Delphi ::: Dicas & Truques ::: Matemática e Estatística |
Como gerar um número aleatório de 0 a 10 em Delphi usando a função Random()Quantidade de visualizações: 29260 vezes |
Em algumas situações precisamos gerar números randômicos. Em Delphi isso pode ser feito com o auxílio da função Random(). Esta função aceita um valor inteiro e retorna um número aleatório maior ou igual a 0 e menor que o valor fornecido. Assim, se quisermos obter um número randômico na faixa de 0 a 10, só precisamos fornecer o valor 11 para a função Random(). Note ainda a chamada à função Randomize(), usada para iniciar o gerador de números randômicos. Veja um exemplo no qual geramos um número aleatório na faixa de 0 a 10: procedure TForm1.Button1Click(Sender: TObject); var numero: integer; begin // vamos iniciar o gerador de números randômicos Randomize; // vamos gerar um número aleatório entre 0 e 10 numero := Random(11); // exibe o resultado ShowMessage('Número gerado: ' + IntToStr(numero)); end; Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Java Vetores e Matrizes - Como inicializar os elementos de um vetor usando o laço for da linguagem JavaQuantidade de visualizações: 9965 vezes |
Neste exemplo veremos como inicializar um vetor (array) de ints usando o laço for. Note que os elementos do array serão inicializados com os valores de 1 a 10. Veja o código completo: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ // vamos declarar e construir um vetor de 10 elementos int[] a = new int[10]; // inicializa os elementos do vetor for(int i = 0; i < a.length; i++){ a[i] = (i + 1); } // exibe os valores dos elementos do vetor for(int i = 0; i < a.length; i++){ System.out.print(a[i] + ", "); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: C++ Básico |
Exercício Resolvido de C++ - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescenteQuantidade de visualizações: 808 vezes |
Pergunta/Tarefa: Escreva um programa C++ que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida". Sua saída deverá ser parecida com: Primeiro número: 4 Segundo número: 8 Terceiro número: 11 Ordem Crescente Veja a resolução comentada deste exercício em C++: #include <string> #include <iostream> using namespace std; // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do exercício int a, b, c; // vamos pedir para o usuário informar três números cout << "Primeiro número: "; cin >> a; cout << "Segundo número: "; cin >> b; cout << "Terceiro número: "; cin >> c; // os números estão em ordem crescente? if (a < b && b < c){ cout << "Ordem Crescente" << endl; } // os números estão em ordem decrescente? else if (a > b && b > c){ cout << "Ordem Decrescente" << endl; } // sem ordem definida else{ cout << "Sem ordem definida" << endl; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
PHP ::: Dicas & Truques ::: Data e Hora |
Como verificar se uma determinada data é um dia útil usando PHPQuantidade de visualizações: 540 vezes |
Nesta dica eu mostro como é possível usar um código PHP para verificar se uma determinada data é um dia útil. Para isso nós usamos o argumento "w" para retornar um valor inteiro para o dia da semana e testamos se ele é diferente de 0 e 6, ou seja, sábado e domingo. Veja o código PHP completo: <html> <head> <title>Estudos PHP</title> </head> <body> <?php // data: 22/11/2006 $data = mktime(0, 0, 0, 11, 22, 2006); $dia_semana = date("w", $data); // domingo = 0; // sábado = 6; // verifica sábado e domingo if(($dia_semana != 0) && ($dia_semana != 6)){ echo "Esta data é um dia útil"; } else{ echo "Esta data NÃO é um dia útil"; } ?> </body> </html> Quando executarmos este código PHP nós teremos o seguinte resultado: Esta data é um dia útil |
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Java para iniciantes - Como usar o tipo de dados byte da linguagem JavaQuantidade de visualizações: 12643 vezes |
O tipo de dados byte pode ser usado quando queremos armazenar valores inteiros na faixa ?128 à 127. Veja um exemplo:public class Estudos{ static byte valor = 102; public static void main(String args[]){ System.out.println("O valor da variável é: " + valor); System.exit(0); } } Porém, é preciso estar atento a um detalhe muito importante (testado na versão 6 do SDK). Veja o trecho de código seguinte: public class Estudos{ public static void main(String args[]){ byte a = 5; byte b = 6; byte soma = a + b; System.out.println("O resultado é: " + soma); System.exit(0); } } À primeira vista este código está correto, visto que a soma das variáveis a e b não ultrapassam a faixa do tipo byte. Porém, ao tentarmos compilar, temos a seguinte mensagem de erro: Estudos.java:5: possible loss of precision found : int required: byte byte soma = a + b; ^ 1 error Isso acontece porque o tipo de dados resultante da aplicação do operador de adição (e demais operadores binários) a dois números, é no mínimo int. Podemos, é claro, fazer uma coerção de dados (cast). Veja: byte a = 5; byte b = 6; byte soma = (byte)(a + b); O tipo de dados byte pode ser convertido (sem a necessidade de cast) para os seguintes tipos: byte -> short -> int -> long -> float -> double Um tipo byte não pode ser convertido implicitamente para o tipo char. Isso acontece porque o tipo char não possui sinal. |
Python ::: Pandas Python Library (Biblioteca Python Pandas) ::: DataFrame |
Como retornar a quantidade de linhas em um DataFrame do Pandas usando a função len() e a propriedade indexQuantidade de visualizações: 2108 vezes |
Podemos tirar proveito da função len() do Python e da propriedade index do DataFrame do Pandas para contarmos as linhas do DataFrame. Lembre-se de que a propriedade index representa os rótulos das linhas. Veja o código completo para o exemplo: # importamos a biblioteca Pandas import pandas as pd def main(): # vamos carregar os dados do arquivo .csv df = pd.read_csv("C:\\estudos_python\\carros.csv", delimiter=";") # vamos mostrar o DataFrame resultante print("Os dados do DataFrame são:\n") print(df) # agora vamos retornar a quantidade de linhas no DataFrame quant_linhas = len(df.index) # e mostramos o resultado print("\nO DataFrame contém {0} linhas".format(quant_linhas)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Os dados do DataFrame são: Marca Modelo Ano Valor Vendido 0 Fiat Sienna 2010.0 23500.0 S 1 Volkswagen Polo NaN 31453.0 N 2 Volkswagen NaN 2001.0 19200.0 S 3 Fiat Palio 1995.0 7500.0 S 4 Honda Civic NaN 42000.0 S 5 Renault Sandero 2010.0 52000.0 N 6 Ford Focus 2009.0 42700.0 N O DataFrame contém 7 linhas |
Dart ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em Dart usando o método cos() da biblioteca Math - Calculadora de cosseno em DartQuantidade de visualizações: 883 vezes |
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem: ![]() Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula: \[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \] Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Dart. Esta método, que faz parte da biblioteca Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: // vamos importar a biblioteca dart:math import "dart:math"; void main(){ print("Cosseno de 0 = " + cos(0).toString()); print("Cosseno de 1 = " + cos(1).toString()); print("Cosseno de 2 = " + cos(2).toString()); } Ao executar este código Dart nós teremos o seguinte resultado: Cosseno de 0 = 1.0 Cosseno de 1 = 0.5403023058681398 Cosseno de 2 = -0.4161468365471424 Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo: ![]() |
Nossas 20 dicas & truques de programação mais populares |
jQuery - jQuery para iniciantes - Como obter o conteúdo de um elemento HTML usando a função html() do jQuery Python - Como testar se um ponto está dentro de um círculo em Python - Desenvolvimento de Games com Python |
Você também poderá gostar das dicas e truques de programação abaixo |
VisuAlg - Como calcular o coeficiente angular de uma reta em VisuAlg dados dois pontos no plano cartesiano C# - Como abrir outros formulários de sua aplicação C# Windows Forms a partir do formulário principal VB.NET - Como adicionar horas à data e hora atual em VB.NET usando a função AddHours() da classe DateTime Delphi - Como calcular o coeficiente angular de uma reta em Delphi dados dois pontos no plano cartesiano |
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 |