Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: C ::: Dicas & Truques ::: Strings e Caracteres

Como escrever sua própria implementação da função strcmp(), usada para comparar strings em C

Quantidade de visualizações: 13968 vezes
Esta dica mostra como é possível escrever sua própria implementação da função strcmp(), usada para comparar strings em C. Aqui nós demos à nossa função personalizada o nome de str_compare(). O objetivo é deixá-lo confortável para efetuar as modificações necessárias e adicionar mais uma valiosa função à sua coleção de códigos reutilizáveis. Eis o código completo:

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

// função que simula o funcionamento da
// função strcmp(), usada para comparar duas
// strings em C
int str_compare(const char *str1, const char *str2){
   // avança nas duas strings enquanto seus caracteres
   // forem iguais e a primeira string ainda possuir
   // caracteres
   while((*str1 == *str2) && (*str1)){
     str1++;
     str2++;
   }

   // fim da primeira string ou encontramos caracteres
   // diferentes. Hora de testar
   if((*str1 == *str2) && (!*str1))
     return 0; // strings iguais
   else if((*str1) && (!*str2))
     return -1; // a primeira string é maior
   else if((*str2) && (!*str1))
     return 1; // a segunda string é maior
}

int main(int argc, char *argv[]){
  char palavra1[] = "Java";
  char palavra2[] = "Java";

  if(str_compare(palavra1, palavra2) == 0)
    printf("As palavras sao iguais");
  else if(str_compare(palavra1, palavra2) < 0)
    printf("A primeira string e maior que a segunda");
  else if(str_compare(palavra1, palavra2) > 0)
    printf("A segunda string e maior que a primeira");

  puts("\n\n");
  system("PAUSE");
  return 0;
}


Link para compartilhar na Internet ou com seus amigos:

C++ ::: C++ para Engenharia ::: Física - Mecânica

Como calcular a Energia Potencial Gravitacional de um corpo dado a sua massa e altura em C++

Quantidade de visualizações: 189 vezes
A Energia Potencial Gravitacional ou Energia Gravitacional é a energia potencial que um objeto massivo tem em relação a outro objeto massivo devido à gravidade. É a energia potencial associada ao campo gravitacional, que é parcialmente convertida em energia cinética quando os objetos caem uns contra os outros. A energia potencial gravitacional aumenta quando dois objetos são separados.

A fórmula para obtenção da Energia Potencial Gravitacional de um corpo em relação à sua massa e distância do chão, ou seja, da superfície terrestre, é:

\[ E_\text{pg} = \text{m} \cdot \text{g} \cdot \text{h} \]

Onde:

Epg ? energia potencial gravitacional (em joule, J).

m ? massa do corpo (em kg).

g ? aceleração da gravidade (m/s2).

h ? altura do objeto em relação ao chão (em metros).

Como podemos ver, a Energia Potencial Gravitacional está diretamente relacionada à distância do corpo em relação à superfície terrestre. Dessa forma, quanto mais distante da terra o objeto estiver, maior a sua energia gravitacional. Isso nós diz também que, um objeto de altura zero possui Energia Potencial Gravitacional nula.

Vamos ver um exemplo agora? Observe o seguinte enunciado:

1) Uma pessoa levanta um tijolo com peso de 2 quilogramas à distância de 1,5 metros do chão. Qual é a Energia Potencial Gravitacional deste corpo?

Como o exercício nos dá a massa do objeto em kg e a distância dele em relação ao chão já está em metros, tudo que temos a fazer é jogar na fórmula. Veja o código C++ completo para o cálculo:

#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // gravidade terrestre em m/s2
  double gravidade = 9.80665;
  // massa do corpo
  double massa = 2; // em kg
  // altura do corpo em relação ao chão
  double altura = 1.5; // em metros
  
  // vamos calcular a energia potencial gravitacional
  double epg = massa * gravidade * altura;
  
  // mostramos o resultado
  cout << "A Energia Potencial Gravitacional é: " << epg << "J";
		
  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

A Energia Potencial Gravitacional é: 29.419950J


Delphi ::: Dicas & Truques ::: Data e Hora

Como retornar o dia do mês para uma determinada data em Delphi usando as funções DayOfTheMonth() e DayOf()

Quantidade de visualizações: 17303 vezes
Em algumas situações precisamos extrair apenas o dia do mês de uma determinada data. Para isso podemos usar as funções DayOfTheMonth() e DayOf(), ambas contidas na unit DateUtils. Estas funções retornam um valor inteiro na faixa de 1 a 31. Veja, por exemplo, como obter o dia do mês da data atual:

procedure TForm1.Button1Click(Sender: TObject);
var
  hoje: TDateTime;
  dia_mes: integer;
begin
  // não esqueça de incluir DateUtils no uses

  // vamos receber a data de hoje
  hoje := Now;

  // vamos obter o dia do mês
  dia_mes := DayOf(hoje);

  // vamos exibir o resultado
  ShowMessage('O dia do mês é: ' + IntToStr(dia_mes));
end;

É importante notar que ambas as funções DayOfTheMonth() e DayOf() esperam um valor do tipo TDateTime representando a data cujo mês queremos extrair.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


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

Delphi para iniciantes - Como escrever uma função que retorna uma matriz de Integer

Quantidade de visualizações: 13334 vezes
Em algumas situações precisamos retornar uma matriz a partir de uma função. Nesta dica eu mostro como isso pode ser feito. O primeiro passo é declarar um novo tipo. Veja:

type // vamos declarar um novo tipo
  TMatrizInteiros = array of Integer;

Aqui o tipo TMatrizInteiros representa uma matriz de inteiros. Veja a unit completa para o exemplo:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type // vamos declarar um novo tipo
  TMatrizInteiros = array of Integer;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// função usada para construir e retornar uma
// matriz de Integer
function obterValores: TMatrizInteiros;
var
  tempArray: TMatrizInteiros;
  i: integer;
begin
  // vamos definir o tamanho da matriz
  SetLength(tempArray, 10);

  // vamos inicializar a matriz com os números pares de 0 até 18
  // note que em matrizes abertas o índice inicial é sempre 0
  for i := Low(tempArray) to High(tempArray) do
    begin
      tempArray[i] := i * 2;
    end;

  Result := tempArray; // vamos retornar a matriz
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  valores: TMatrizInteiros; // uma matriz do tipo TMatrizInteiros
  i: Integer;
begin
  valores := obterValores();

  // que já temos a matriz, vamos exibir os valores de
  // seus elementos
  for i := 0 to High(valores) do
    begin
      Memo1.Lines.Add(IntToStr(valores[i]));
    end;
end;

end.

Note que a função retornará uma matriz aberta (open array). Desta forma, seu índice inicial será sempre 0.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Java - Como retornar o primeiro elemento de um array em Java

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

Escreva um programa Java que mostra como acessar e retornar o primeiro elemento de um array (vetor) Java.

Sua saída deverá ser parecida com:

Os elementos do vetor são: [9, 5, 3, 2, 4, 8]
O primeiro elemento do array é: 9 
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;

import java.util.Arrays;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um array de inteiros
    int valores[] = {9, 5, 3, 2, 4, 8};
    System.out.println("Os elementos do vetor são: " +
      Arrays.toString(valores));
    
    // agora vamos retornar o primeiro elemento do vetor
    int primeiro = valores[0];
    
    // e mostramos o resultado
    System.out.println("O primeiro elemento do array é: " +
      primeiro);
  }
}



Delphi ::: Classes, Controles e Componentes ::: TRegistry (Registro do Windows)

Como criar chaves no registro do Windows usando o método CreateKey() da classe TRegistry do Delphi

Quantidade de visualizações: 14671 vezes
Em algumas situações gostariámos de criar novas chaves e/ou sub-chaves no registro do Windows. Isso pode ser feito por meio do método CreateKey() da classe TRegistry. Este método recebe uma string especificando o nome da chave a ser criada e retorna um valor Boolean indicando se a chave foi criada com sucesso.

Veja um trecho de código no qual criamos uma chave chamada "Arquivo de Códigos" dentro da chave raiz HKEY_CURRENT_USER:

procedure TForm3.Button4Click(Sender: TObject);
var
  chave: String;
  reg: TRegistry;
begin
  // uses Registry

  // vamos definir o nome da chave a ser criada
  chave := 'Arquivo de Códigos';

  // vamos criar uma instância da classe TRegistry
  reg := TRegistry.Create;

  // a chave raiz padrão é HKEY_CURRENT_USER mas, por via das dúvidas
  // vamos reafirmar isso
  reg.RootKey := HKEY_CURRENT_USER;

  // vamos criar a chave informada
  if reg.CreateKey(chave) then
    begin
      ShowMessage('A chave foi criada com sucesso.');
    end
  else
    begin
      ShowMessage('Não foi possível criar a chave informada.');
    end;
    
  // vamos liberar o registro 
  reg.Free;
end;


Alguns aplicativos, por exemplo os da Adobe, Macromedia, Microsoft, etc, guardar informações relacionadas aos seus aplicativos na sub-chave SOFTWARE dentro da chave HKEY_LOCAL_MACHINE. Assim, vamos criar uma chave para um aplicativo fictício. Vamos chamar nossa chave de "Simulador Nota Fiscal Eletrônica 1.0". Note que, se esta chave já existir no registro nada acontecerá:

procedure TForm3.Button4Click(Sender: TObject);
var
  chave: String;
  reg: TRegistry;
begin
  // uses Registry

  // vamos definir o nome da chave a ser criada
  chave := 'Simulador Nota Fiscal Eletrônica 1.0';

  // vamos criar uma instância da classe TRegistry
  reg := TRegistry.Create;

  // vamos criar uma chave dentro de HKEY_LOCAL_MACHINE\SOFTWARE
  reg.RootKey := HKEY_LOCAL_MACHINE;

  // vamos criar a chave informada
  if reg.CreateKey('\SOFTWARE\' + chave) then
    begin
      ShowMessage('A chave foi criada com sucesso.');
    end
  else
    begin
      ShowMessage('Não foi possível criar a chave informada.');
    end;
    
  // vamos liberar o registro 
  reg.Free;
end;


Execute este código e logo em seguida abra uma janela de terminal e digite regedit.exe. vá na seção
HKEY_LOCAL_MACHINE\SOFTWARE e veja se a chave "Simulador Nota Fiscal Eletrônica 1.0" foi realmente criada.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby

Anúncio Patrocinado
Chat de Sexo - Site para adultso - Maiores de 18 anos. Converse com pessoas de todo o Brasil, de forma discreta e anônima


© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 10 usuários muito felizes estudando em nosso site.