Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
acss

(Resolvido) Conversão código java em delphi

Question

Olá estou tendo dificuldade em converter esse código java  em código delphi, agradeço pela ajuda dos amigos na ajuda para poder converter esse código em delphi

 

 

 

 

import java.util.Scanner;

public class javaPessorneCalc {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        int i, size, counter = 0, numer = 0, numLen, numFin = 0;
        int[] nums;
        char a;
        String input = "", numero = "";
        
        System.out.println("Enter the for analysis: ");
        input = scan.nextLine();
        scan.close();
        size = input.length();
        while(counter < size)
        {
            a = input.charAt(counter);
            if(a == 'a' || a == 'j' || a == 's'
            || a == 'A' || a == 'J' || a == 'S')
            {
                numer += 1;
            }
            else if(a == 'b' || a == 'k' || a == 't'
                 || a == 'B' || a == 'K' || a == 'T')
            {
                numer += 2;
            }


counter++;
        }
        numero += numer;
        numLen = numero.length();
        nums = new int[numLen];
        for(i = 0; i < numLen; i++)
        {
            if(numero.charAt(i)== '0')
                nums = 0;
            else if(numero.charAt(i)== '1')
                nums = 1;
            else if(numero.charAt(i)== '2')
                nums = 2;
            


}
        for(i = 0; i < nums.length; i++)
        {
            if (numer == 11 || numer == 22 || numer == 33 || numer == 44)
            {
                numFin = numer;
                i = nums.length;
            }
            else
                numFin += nums;
        }
        System.out.println("The name, '"+input+"', adds to "+numer+" and totals to "+ numFin+"!");
        
    }

}

 

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Tudo bem Jhonas  como vai,

 

obrigado  pelo link que você me passou fui lá e baixei o programa e vou  estudar como usar

 

 

Posso explicar sim sem problema, espero não complicar muito porque é ficou grande o texto, é baseado em numerologia a pessoa entra com o nome dela no Edit do programa
E programa calcula baseado nos valores da tabela que correspondente a cada letra o nome da pessoa,
essa tabela está na imagem que eu ti passei abaixo , cada letra do alfabeto tem um valor corresponde entre (1 a 9)conforme essa tabela


Por exemplo usando a tabela

1) José    J=1  O=6 S=1 e E=5


Agora o próximo passo é somar esses valores sendo que o total deve ser de apenas um digito de 1 a 9 se passar tem que reduzir através de somas


dessa maneira  J=1  O=6 S=1 e E=5    ----> 1+6+1+5 = 13     como 13 é maior que nove deve continuar a redução, somando

desse total 1+3= 4


4 é número do nome José

----------


2) Pedro Alvares

P=7  E=5  D=4 R=9 O=6        A=1  L=3  V=4  A=1 R=9 E=5  S=1


Agora somando

7+5+4+9+6+   1+3+4+1+9+5+1 =  55    continua reduzindo esse valor para estar entre 1 e 9

 

55 = 5+5 = 10= 1


1 é número do nome Pedro Alvares


-----------------------------

Só que tem uma exceção Jhonas que são os números mestres 11 e 22 esses tem que ser (caso apareça no nome da pessoa) mostrados em separados e disponíveis para serem pegados no código do programa quando necessário, e depois devem ser reduzidos normalmente e mostrado em separados em um outro label por exemplo,  esses dois números podem aparecer tanto no total da soma ou nas reduções das somas, então programa tem de parar de somar e reduzir e mostrar um desses dois valores  11 ou 22 se aparecerem nome da pessoa, e continuar somando e reduzindo


Por exemplo

Jusana Gueths

1+3+1+1+5+1+7+3+5+2+8+1 = total 38 = primeira redução 3+8 = 11       Ai para a redução das somas e mostra o 11  em label separado

e mostra 2 também que seria soma do número mestre 11 (1+1) em outro label


------------------------------------

Se a soma desse o número mestre 22 mostraria esse valor e também esse número reuzido   22(2+2) =4


num label 22 e no outro label 4,


-------

é que tem fórmulas Jhonas na numerologia que precisa desses dois números tanto o mestre  quanto da redução dela 22 é o 4 assim como número mestre 11 sua redução que dá 2  para serem usados separados em outros cáculos, caso necessário

 

##########################################################################

 
Ai ganhei esse código de um amigo só que está em java que faz todo esse processo descrito acima, eu tenho um programa que traduz parcialmente o java para pascal


só que como sou audodita e inciante não estou acertado passar para o delphi sozinho, fiz uma imagem de como seria o programa só ti dar uma ideia melhor

então vou passar para você o programa inteiro em java, e também aquilo que o meu programa traduziu para o pascal que pode uma ideia melhor, e se vocês poderem me dar uma ajuda para passar para delphi agradeço Johnas


Obrigado a vocês todos ai, tenha um bom dia

 


############### CÒDIGO JAVA #############################

//Programa


import java.util.Scanner;

public class javaNumerologyCalc {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        int i, size, counter = 0, numer = 0, numLen, numFin = 0;
        int[] nums;
        char a;
        String input = "", numero = "";
        
        System.out.println("Enter the name for numerological analysis: ");
        input = scan.nextLine();
        scan.close();
        size = input.length();
        while(counter < size)
        {
            a = input.charAt(counter);
            if(a == 'a' || a == 'j' || a == 's'
            || a == 'A' || a == 'J' || a == 'S')
            {
                numer += 1;
            }
            else if(a == 'b' || a == 'k' || a == 't'
                 || a == 'B' || a == 'K' || a == 'T')
            {
                numer += 2;
            }
            else if(a == 'c' || a == 'l' || a == 'u'
                 || a == 'C' || a == 'L' || a == 'U')
            {
                numer += 3;
            }
            else if(a == 'd' || a == 'm' || a == 'v'
                 || a == 'D' || a == 'M' || a == 'V')
            {
                numer += 4;
            }
            else if(a == 'e' || a == 'n' || a == 'w'
                 || a == 'E' || a == 'N' || a == 'W')
            {
                numer += 5;
            }
            else if(a == 'f' || a == 'o' || a == 'x'
                 || a == 'F' || a == 'O' || a == 'X')
            {
                numer += 6;
            }
            else if(a == 'g' || a == 'p' || a == 'y'
                  ||a == 'G' || a == 'P' || a == 'Y')
            {
                numer += 7;
            }
            else if(a == 'h' || a == 'q' || a == 'z'
                 || a == 'H' || a == 'Q' || a == 'Z')
            {
                numer += 8;
            }
            else if(a == 'i' || a == 'r'
                 || a == 'I' || a == 'R')
            {
                numer += 9;
            }
            counter++;
        }
        numero += numer;
        numLen = numero.length();
        nums = new int[numLen];
        for(i = 0; i < numLen; i++)
        {
            if(numero.charAt(i)== '0')
                nums = 0;
            else if(numero.charAt(i)== '1')
                nums = 1;
            else if(numero.charAt(i)== '2')
                nums = 2;
            else if(numero.charAt(i)== '3')
                nums = 3;
            else if(numero.charAt(i)== '4')
                nums = 4;
            else if(numero.charAt(i)== '5')
                nums = 5;
            else if(numero.charAt(i)== '6')
                nums = 6;
            else if(numero.charAt(i)== '7')
                nums = 7;
            else if(numero.charAt(i)== '8')
                nums = 8;
            else if(numero.charAt(i)== '9')
                nums = 9;
        }
        for(i = 0; i < nums.length; i++)
        {
            if (numer == 11 || numer == 22 || numer == 33 || numer == 44)
            {
                numFin = numer;
                i = nums.length;
            }
            else
                numFin += nums;
        }
        System.out.println("The name, '"+input+"', adds to "+numer+" and totals to "+ numFin+"!");
        
    }

}

 

######O MESMO CÒDIGO JAVA TRADUZIDO PARA O PASCAL PELO MEU PROGRAMA#############################

//Programa

import java.util.Scanner;

public class javaNumerologyCalc begin

    (**
     * @param args
     *)
    public static void main(String[] args) begin
        // TODO Auto-generated method stub
        Scanner scan := new Scanner(System.in);
        Integer i, size, counter := 0, numer := 0, numLen, numFin := 0;
        Integer[] nums;
        char a;
        String input := '', numero := '';
        
        System.out.println('Enter the name for numerological analysis: ');
        input := scan.nextLine();
        scan.close();
        size := input.length();
        while (counter < size) do
        begin
            a := input.charAt(counter);
            if(a = 'a' or a = 'j' or a = 's'
            or a = 'A' or a = 'J' or a = 'S') then
            begin
                numer + := 1;
            end
            else if(a = 'b' or a = 'k' or a = 't'
                 or a = 'B' or a = 'K' or a = 'T') then
            begin
                numer + := 2;
            end
            else if (a = 'c' or a = 'l' or a = 'u'
                 or a = 'C' or a = 'L' or a = 'U') then
            begin
                numer + := 3;
            end
            else if (a = 'd' or a = 'm' or a = 'v'
                 or a = 'D' or a = 'M' or a = 'V') then
            begin
                numer + := 4;
            end
            else if (a = 'e' or a = 'n' or a = 'w'
                 or a = 'E' or a = 'N' or a = 'W') then
            begin
                numer + := 5;
            end
            else if (a = 'f' or a = 'o' or a = 'x'
                 or a = 'F' or a = 'O' or a = 'X') then
            begin
                numer + := 6;
            end
            else if (a = 'g' or a = 'p' or a = 'y'
                  or a = 'G' or a = 'P' or a = 'Y') then
            begin
                numer + := 7;
            end
            else if (a = 'h' or a = 'q' or a = 'z'
                 or a = 'H' or a = 'Q' or a = 'Z') then
            begin
                numer + := 8;
            end
            else if (a = 'i' or a = 'r'
                 or a = 'I' or a = 'R') then
            begin
                numer + := 9;
            end;
            counter++;
        end;
        numero + := numer;
        numLen := numero.length();
        nums := new Integer[numLen];
        for(i := 0; i < numLen; i++)
        begin
            if(numero.charAt(i)= '0') then
                nums := 0
            else if (numero.charAt(i)= '1') then
                nums := 1
            else if (numero.charAt(i)= '2') then
                nums := 2
            else if (numero.charAt(i)= '3') then
                nums := 3
            else if (numero.charAt(i)= '4') then
                nums := 4
            else if (numero.charAt(i)= '5') then
                nums := 5
            else if(numero.charAt(i)= '6') then
                nums := 6
            else if (numero.charAt(i)= '7') then
                nums := 7
            else if (numero.charAt(i)= '8') then
                nums := 8
            else if(numero.charAt(i)= '9') then
                nums := 9;
        end;
        for(i := 0; i < nums.length; i++)
        begin
            if (numer = 11 or numer = 22 or numer = 33 or numer = 44) then
            begin
                numFin := numer;
                i := nums.length;
            end
            else
                numFin + := nums;
        end;
        System.out.println('The name, '''+input+''', adds to '+numer+' and totals to '+ numFin+'!');
        
    end;

end;

Sem título 2.jpg

Share this post


Link to post
Share on other sites
  • 0

Em delphi esse código ficaria assim:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  letras : array[1..26] of char = ('A','B','C','D','E','F','G','H','I',
                                   'J','K','L','M','N','O','P','Q','R',
                                   'S','T','U','V','W','X','Y','Z');
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i,j, num, numx : integer; s,s1  : string;
begin
   i := 0;
   j := 0;
   numx := 0;

   s := trim(UpperCase(Edit1.Text));
   s := StringReplace(s, ' ', EmptyStr, [rfReplaceAll]);
   for i := 1 to length(s) do
      begin
      for j := 1 to 26 do
         begin
            if s[i] = letras[j] then
               begin
                  if j <= 9 then
                     num := j;
                  if (j > 9) and (j <= 18) then
                     num := j - 9;
                  if j > 18 then
                     num := j - 18;
               end;
         end;

         numx := numx + num;

      end;

      // VALOR DA SOMA
      Label1.Caption := (inttostr(numx));

      s1 := inttostr(numx);
      numx := strtoint(s1[1]);
      numx := numx + strtoint(s1[2]);
      if numx > 9 then
         begin
            s1 := inttostr(numx);
            numx := strtoint(s1[1]);
            numx := numx + strtoint(s1[2]);
         end;

      // VALOR DA REDUÇÃO
      Label2.Caption := (inttostr(numx));
end;

end.

OBS: A soma de Jusana Guethes não é 38 e sim 43

abraço

Share this post


Link to post
Share on other sites
  • 0

Obrigado Jhonas ficou excelente

 

você tem algum código que pode me ajudar a pegar esse números mestres 11 ou 22 tanto seja se der no total ou seja num dos processos de redução das somas, caso claro contenha no nome da pessoa esses numeros mestres

No total consigo pegar, mais se aparecer numas dessas soma de redução não vou saber pegar esses números mestres


E se você não tiver ai esse código não tem problema, ai vou procurando, você sabe se em matemática tem o nome correto para essas reduções de soma, ai fica fácil para eu procurar algum código por ai com o nome correto


Agradecido mesmo Johnas, obrigado e tenha bom dia pra você e a todos ai

 

Share this post


Link to post
Share on other sites
  • 0

No total consigo pegar, mais se aparecer numas dessas soma de redução não vou saber pegar esses números mestres

Veja a mudança no código

procedure TForm1.Button1Click(Sender: TObject);
var i,j, num, numx : integer; s,s1  : string;
begin
   i := 0;
   j := 0;
   numx := 0;

   s := trim(UpperCase(Edit1.Text));
   s := StringReplace(s, ' ', EmptyStr, [rfReplaceAll]);
   for i := 1 to length(s) do
      begin
      for j := 1 to 26 do
         begin
            if s[i] = letras[j] then
               begin
                  if j <= 9 then
                     num := j;
                  if (j > 9) and (j <= 18) then
                     num := j - 9;
                  if j > 18 then
                     num := j - 18;
               end;
         end;

         numx := numx + num;

      end;

      // VALOR DA SOMA
      Label1.Caption := (inttostr(numx));

      if (numx = 11) or (numx = 22) then
         showmessage('Achei um numero mestre na SOMA => ' + inttostr(numx);

      s1 := inttostr(numx);
      numx := strtoint(s1[1]);
      numx := numx + strtoint(s1[2]);

      if (numx = 11) or (numx = 22) then
         showmessage('Achei um numero mestre na REDUÇÃO => ' + inttostr(numx);


      if numx > 9 then
         begin
            s1 := inttostr(numx);
            numx := strtoint(s1[1]);
            numx := numx + strtoint(s1[2]);
         end;

      // VALOR DA REDUÇÃO
      Label2.Caption := (inttostr(numx));
end;

 

Denomina-se um monômio ou termo algébrico, todo produto de números reais expresso ou não por variáveis (letras).

exemplo

5x2→grau 2

Neste monômio a parte literal é formada somente por uma letra (x), portanto o grau dele é o expoente do x.

5 →grau 0

Este monômio não tem parte literal, portanto seu grau é 0.

Então o que voce esta fazendo é somar monômios de grau zero

2 + 3 + 6 + 8 = 19

abraço

Share this post


Link to post
Share on other sites
  • 0

Como vai Jhonas obrigado pelo código e pela explicação iria demorar para descobrir que se chama monômio se não pergunta-se, vou ver se aprendo sobre esse assunto, pode cair isso de novo futuro.


estava testando o código que você me passou aqui ficou muito bom o programa e com valores que testei ele deu os resultados certo.

Quando o total da soma das letras pela tabela é igual ou menor que nove ele dá os valores certo nos labels mais vem essa tela de erro junto no programa.

tem como não aparecer essas telas Jhonas

Obrigado mesmo a você Jhonas pela sua ajuda 

 

 

 

 

 

Sem título 5.jpg

Share this post


Link to post
Share on other sites
  • 0

amigo, isso era para voce saber como resolver ...  é muito simples

procedure TForm1.Button1Click(Sender: TObject);
var i,j, num, numx : integer; s,s1  : string;
begin
   i := 0;
   j := 0;
   numx := 0;

   s := trim(UpperCase(Edit1.Text));
   s := StringReplace(s, ' ', EmptyStr, [rfReplaceAll]);
   for i := 1 to length(s) do
      begin
      for j := 1 to 26 do
         begin
            if s[i] = letras[j] then
               begin
                  if j <= 9 then
                     num := j;
                  if (j > 9) and (j <= 18) then
                     num := j - 9;
                  if j > 18 then
                     num := j - 18;
               end;
         end;

         numx := numx + num;

      end;

      // VALOR DA SOMA
      Label1.Caption := (inttostr(numx));

      if (numx = 11) or (numx = 22) then
         showmessage('Achei um numero mestre na SOMA => ' + inttostr(numx));

      if numx > 9 then  /// PRIMEIRA REDUÇÃO
         begin
            s1 := inttostr(numx);
            numx := strtoint(s1[1]);
            numx := numx + strtoint(s1[2]);
         end;

      if (numx = 11) or (numx = 22) then
         showmessage('Achei um numero mestre na REDUÇÃO => ' + inttostr(numx));

      if numx > 9 then  /// SEGUNDA REDUÇÃO
         begin
            s1 := inttostr(numx);
            numx := strtoint(s1[1]);
            numx := numx + strtoint(s1[2]);
         end;

      // VALOR DA REDUÇÃO
      Label2.Caption := (inttostr(numx));
end;

abraço

Share this post


Link to post
Share on other sites
  • 0

Obrigado mesmo Jhonas,, ficou muito excelente o programa,  dei uma cochila aqui rr

 

tenha bom dia  e agradeço pela ajuda

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



  • Forum Statistics

    • Total Topics
      148128
    • Total Posts
      643428
×
×
  • Create New...