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 Engenharia

Quantidade 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 JavaScript

Quantidade 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 Java

Quantidade 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 decrescente

Quantidade 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
Resposta/Solução:

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 PHP

Quantidade 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 Java

Quantidade 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 index

Quantidade 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 Dart

Quantidade 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:



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