Tutorial Megusta - Biblioteca de Funções

União das linguagens: Java, Javascript, Typescript, Node.js, PHP, Python, Clipper, Rust, C/C++, ASSEMBLY e WebAssembly.


1. Introdução

Megusta é uma linguagem de programação e transpilador que permite escrever código em uma sintaxe única e depois "transpilar" para diversas linguagens.

2. Primeiro Programa em Java

Arquivo: Main.java

import ouka.Megusta;

public class Main {
    public static void main(String[] args) {
        Megusta r = new Megusta();
        
        r.rPrintln("Olá, Mundo!");
    }
}

Compilação e Executação:

javac Main.java
java Main

Saída:

Olá, Mundo!

3. Entrada e Saída

Imprimindo textos:

// rPrint() - Imprime sem quebra de linha
r.rPrint("Olá ");
r.rPrint("Mundo");

// rPrintln() - Imprime com quebra de linha
r.rPrintln();
r.rPrintln("Olá, Mundo!");

// rInput() - Lê entrada do usuário
String nome = r.rInput("Digite seu nome: ");
r.rPrintln("Olá, " + nome + "!");

4. Manipulação de Strings

4.1. replace() - Substitui substring

String original = "Hoje é um lindo dia!";
String substituida = r.strReplace(original, "lindo", "maravilhoso");
r.rPrintln(substituida); // Saída: "Hoje é um maravilhoso dia!"

4.2. length() - Tamanho da string

String minhaString = "Olá, mundo!";
int tamanho = r.strLength(minhaString);
r.rPrintln("O tamanho da string é: " + tamanho); // Saída: 12

4.3. substring() - Extrai substring

String original = "Isso é uma string de exemplo.";
String sub = r.strSubstring(original, 8, 13);
r.rPrintln(sub); // Saída: "uma s"

4.4. charAt() - Caractere na posição

String minhaString = "Olá, mundo!";
char primeiro = r.strCharAt(minhaString, 0); // 'O'
char quarto = r.strCharAt(minhaString, 3); // ','
r.rPrintln("Primeiro caractere: " + primeiro);
r.rPrintln("Quarto caractere: " + quarto);

4.5. indexOf() - Busca substring

String minhaString = "Isso é um exemplo de indexOf em Java.";
int indice = r.strIndexOf(minhaString, "exemplo");
r.rPrintln("A substring 'exemplo' começa no índice: " + indice); // Saída: 10

4.6. lastIndexOf() - Última ocorrência

String minhaString = "Isso é um exemplo. Outro exemplo.";
int indice = r.strLastIndexOf(minhaString, "exemplo");
r.rPrintln("Última ocorrência: " + indice); // Saída: 26

4.7. toLowerCase() - Minúsculas

String minhaString = "OLÁ, MUNDO!";
String resultado = r.strToLowerCase(minhaString);
r.rPrintln(resultado); // Saída: "olá, mundo!"

4.8. toUpperCase() - Maiúsculas

String minhaString = "olá, mundo!";
String resultado = r.strToUpperCase(minhaString);
r.rPrintln(resultado); // Saída: "OLÁ, MUNDO!"

4.9. equals() - Compara strings

boolean resultado1 = r.strEquals("Olá", "Olá"); // true
boolean resultado2 = r.strEquals("Olá", "olá"); // false
boolean resultado3 = r.strEqualsIgnoreCase("Olá", "olá"); // true
r.rPrintln("equals: " + resultado1);
r.rPrintln("equals (case sensitive): " + resultado2);
r.rPrintln("equalsIgnoreCase: " + resultado3);

4.10. split() - Divide string

String[] resultado = r.strSplit("a,b,c", ",");
for (int i = 0; i < r.arrSize(resultado); i++) {
    r.rPrintln(resultado[i]);
}
// Saída: a, b, c

4.11. padStart() - Preenche início

String resultado = r.strPadStart("Olá", 6, "0");
r.rPrintln(resultado); // Saída: "00Olá"

4.12. padEnd() - Preenche final

String resultado = r.strPadEnd("Olá", 6, "0");
r.rPrintln(resultado); // Saída: "Olá00"

4.13. search() - Busca regex

int indice = r.strSearch("abc123", "\\d+");
r.rPrintln("Índice do regex: " + indice); // Saída: 3

5. Trabalhando com Datas

5.1. dateDay() - Dia do mês

int dia = r.dateDay();
r.rPrintln("Dia: " + dia);

5.2. dateWeekDay() - Dia da semana (1=Domingo, 7=Sábado)

int semana = r.dateWeekDay();
r.rPrintln("Dia da semana: " + semana);

5.3. dateMonth() - Mês (1=Janeiro, 12=Dezembro)

int mes = r.dateMonth();
r.rPrintln("Mês: " + mes);

5.4. dateYear() - Ano

int ano = r.dateYear();
r.rPrintln("Ano: " + ano);

5.5. dateHour24() - Hora (0-23)

int hora = r.dateHour24();
r.rPrintln("Hora: " + hora);

5.6. dateMinute() - Minuto

int minuto = r.dateMinute();
r.rPrintln("Minuto: " + minuto);

5.7. dateSecond() - Segundo

int segundo = r.dateSecond();
r.rPrintln("Segundo: " + segundo);

5.8. dateSetWeekDay() - Dia da semana de uma data

int diaSemana = r.dateSetWeekDay(1997, 4, 28);
r.rPrintln("28/04/1997 foi dia: " + diaSemana); // Saída: 2 (Segunda)

6. Programa Completo com Data

int dia = r.dateDay();
int semana = r.dateWeekDay();
int mes = r.dateMonth();
int ano = r.dateYear();

String[] semanaNomes = {"", "Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"};
String[] mesNomes = {"", "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", 
                     "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"};

r.rPrintln(semanaNomes[semana] + ", " + dia + " de " + mesNomes[mes] + " de " + ano);
r.rPrintln("São: " + r.dateHour24() + " horas, " + r.dateMinute() + " minutos e " + r.dateSecond() + " segundos.");

7. Operações Matemáticas

7.1. mathInt() - String para int

int numero = r.mathInt("123");
r.rPrintln(numero); // Saída: 123

7.2. mathNum() - String para double

double numero = r.mathNum("12.5");
r.rPrintln(numero); // Saída: 12.5

7.3. mathFloor() - Arredonda para baixo

double resultado = r.mathFloor(3.7);
r.rPrintln(resultado); // Saída: 3.0

7.4. mathCeil() - Arredonda para cima

double resultado = r.mathCeil(3.2);
r.rPrintln(resultado); // Saída: 4.0

7.5. mathRound() - Arredonda

double resultado = r.mathRound(3.5);
r.rPrintln(resultado); // Saída: 4.0

7.6. mathAbs() - Valor absoluto

double resultado = r.mathAbs(-5.5);
r.rPrintln(resultado); // Saída: 5.5

7.7. mathMax() - Máximo

double resultado = r.mathMax(3.0, 7.0);
r.rPrintln(resultado); // Saída: 7.0

7.8. mathMin() - Mínimo

double resultado = r.mathMin(3.0, 7.0);
r.rPrintln(resultado); // Saída: 3.0

7.9. mathPow() - Potência

double resultado = r.mathPow(2.0, 3.0);
r.rPrintln(resultado); // Saída: 8.0

7.10. mathSqrt() - Raiz quadrada

double resultado = r.mathSqrt(16.0);
r.rPrintln(resultado); // Saída: 4.0

7.11. mathRandom() - Número aleatório

double resultado = r.mathRandom();
r.rPrintln(resultado); // Saída: 0.xxxxx

7.12. mathDecimalFormat() - Formata número

String resultado = r.mathDecimalFormat(123.456789, "#.###");
r.rPrintln(resultado); // Saída: "123.457"

8. Arrays

8.1. arrAdd() - Adiciona elemento

String[] frutas = {};
r.arrAdd(frutas, "Banana");
r.arrAdd(frutas, "Maçã");
r.arrAdd(frutas, "Uva");

8.2. arrAddAll() - Adiciona vários elementos

String[] frutas = {"Banana"};
r.arrAddAll(frutas, "Maçã", "Uva", "Morango");

8.3. arrSet() - Define elemento

r.arrSet(frutas, 1, "Laranja");

8.4. arrGet() - Obtém elemento

String fruta = r.arrGet(frutas, 0);
r.rPrintln(fruta); // Saída: "Banana"

8.5. arrSize() - Tamanho do array

int tamanho = r.arrSize(frutas);
r.rPrintln("Tamanho: " + tamanho);

8.6. arrRemove() - Remove elemento

r.arrRemove(frutas, 1);

8.7. arrClear() - Limpa array

r.arrClear(frutas);

8.8. arrContains() - Verifica se contém

boolean contem = r.arrContains(frutas, "Banana");
r.rPrintln("Contém Banana: " + contem);

8.9. arrIndexOf() - Índice do elemento

int indice = r.arrIndexOf(frutas, "Maçã");
r.rPrintln("Índice: " + indice);

8.10. arrLastIndexOf() - Último índice

int indice = r.arrLastIndexOf(frutas, "Maçã");
r.rPrintln("Último índice: " + indice);

9. Arquivos

9.1. rSaveFile() - Salva arquivo

r.rSaveFile("meu_arquivo.txt", "Conteúdo do arquivo");

9.2. rOpenFile() - Lê arquivo

String conteudo = r.rOpenFile("meu_arquivo.txt");
r.rPrintln(conteudo);

9.3. rOpenFileWeb() - Busca URL

String conteudo = r.rOpenFileWeb("https://www.ouka.com.br/meu_arquivo.txt");
r.rPrintln(conteudo);

9.4. rOpenFileWebStatus() - Código HTTP

int status = r.rOpenFileWebStatus();
r.rPrintln("Status HTTP: " + status);

9.5. rOpenProgram() - Executa programa

r.rOpenProgram("java -jar MeuApp.jar");

10. Exemplo Completo

Arquivo: ExemploCompleto.java

import ouka.Megusta;

public class ExemploCompleto {
    public static void main(String[] args) {
        Megusta r = new Megusta();
        
        // String
        String nome = r.rInput("Digite seu nome: ");
        r.rPrintln("Olá, " + nome + "!");
        
        // Data
        int dia = r.dateDay();
        int mes = r.dateMonth();
        int ano = r.dateYear();
        r.rPrintln("Data: " + dia + "/" + mes + "/" + ano);
        
        // Matemática
        r.rPrintln("2^10 = " + r.mathPow(2, 10));
        r.rPrintln("√144 = " + r.mathSqrt(144));
        
        // Arrays
        int[] numeros = {};
        r.arrAdd(numeros, 10);
        r.arrAdd(numeros, 20);
        r.arrAdd(numeros, 30);
        
        for (int i = 0; i < r.arrSize(numeros); i++) {
            r.rPrintln("Número " + i + ": " + r.arrGet(numeros, i));
        }
        
        // Arquivo
        r.rSaveFile("saida.txt", "Resultado do programa");
        r.rPrintln("Arquivo salvo com sucesso!");
    }
}

11. Links Úteis


Correções feitas pela SNN Asael e fera do apocalipse