Skip to content

Instantly share code, notes, and snippets.

View lrlucena's full-sized avatar
🦐
Working on Potigol Language (potigol.github.io)

Leonardo Lucena lrlucena

🦐
Working on Potigol Language (potigol.github.io)
View GitHub Profile
tipo Posicao = (Inteiro, Inteiro)
tipo Tabuleiro = Lista[Posicao]
criarTabuleiro(tamanho: Inteiro): Tabuleiro =
para
x de 1 até tamanho,
y de 1 até tamanho
gere (x, y)
fim
@lrlucena
lrlucena / q5.py
Created October 30, 2023 21:08
Relações - Matemática Discreta
R = [(1,2), (2,1), (1,1), (2,3), (3,3)]
A = [1, 2, 3]
def reflexiva(R, A):
for x in A:
if (x, x) not in R:
return False
return True
def simetrica(R):
@lrlucena
lrlucena / combinatoria.poti
Last active November 16, 2023 12:18
Recursão
# Análise Combinatória
comb(n, k: Inteiro): Inteiro = escolha k
caso 1 => n
caso k se k == n => 1
caso k => comb(n-1, k-1) + comb(n-1, k)
fim
escreva comb(6, 2)
@lrlucena
lrlucena / exercios1.scala
Last active June 30, 2023 17:22
Exercícios de Programação Funcional usando Scala
import io.StdIn.readInt
// Implemente as funções a seguir usando uma abordagem funcional
// - sem usar 'var'
// - Substitua ??? pela implementação de cada função
def maior(a: Int, b: Int) = ???
def mdc(a: Int, b: Int) = ???
def somaRecursiva(lista: List[Int]): Int = ???
def somaFold(lista: List[Int]) = ???
@lrlucena
lrlucena / subsequencia.md
Last active June 7, 2023 18:15
OBI 2023 - Fase 1

Subsequencia

Verifica se é uma subsequencia

subsequencia(x, y: Lista[Inteiro]): Logico =
       se y == []              entao verdadeiro
  senaose x == []              entao falso
  senaose x.cabeça == y.cabeça entao subsequencia(x.cauda, y.cauda)
 senao subsequencia(x.cauda, y)
@lrlucena
lrlucena / README.md
Last active June 16, 2022 22:01
Árvore

Árvore Binária de Expressão

Código Fonte

Construção de uma árvore binária para representar expressões aritmética envolvendo números inteiros e os operadores binários +, -, *, /.

O programa lê uma expressão aritmética escrita em notação polonesa e gera uma árvore binária para representá-la. Depois cálcula o valor da expressão e reescreve a expressão na notação prefixa e infixa.

Entrada

# potigol.github.io
# https://twitter.com/LucasTeles42/status/1514226905809100802
buracos(entrada, saída: Lista[Caractere]): Texto =
se entrada.tamanho < 2 então
saída.inverta.junte("")
senãose entrada[2] - entrada[1] > 1 então
c = (entrada[1] + 1).caractere
buracos(c :: entrada.cauda, c :: saída)
senão
area_avg|Área 1|49731.80
area_avg|Área 2|48646.04
area_max|Área 1|Aahron Galvan|99993.96
area_max|Área 2|Aakash Bracci|99884.08
area_min|Área 1|Aakash Brino|1.96
area_min|Área 2|Aakash Agosti|137.82
global_avg|49648.19
global_max|Aahron Galvan|99993.96
global_min|Aakash Brino|1.96
last_name_max|Abaine|Aakash Abaine|57682.36
zero = BigInt(0)
var entrada = leia_texto
enquanto entrada <> None.orNull faça
n = BigInt(entrada)
var pos = 0
enquanto zero.setBit(pos) < n faça
pos := pos + 1
fim
head = zero.setBit(pos)
escreva "{n} {se head==n então "true {pos}" senão "false" fim}"
import java.util.ArrayList;
import java.util.List;
public class ParallelStreamDemo {
public static void main(String[] args) {
long t1, t2;
List<Employee> eList = new ArrayList<Employee>();
for(int i=0; i<100; i++) {