Skip to content

Instantly share code, notes, and snippets.

@gabrielfern
gabrielfern / gist:83ba345ce4f9cdf681c8f490e72252bd
Created March 26, 2017 01:58
Resuminho do sistema de participacoes, projeto de lp2, UFCG, 2016.2
Professor-> Monitoria: um unico professor
P&D: um professor(pibic, pibiti e pivic),
um ou mais professores(sendo um coordenador)(coop. empresas)
PET: um unico professor(sendo ele coordenador)
Extensao: um unico professor(sendo ele coordenador)
Graduando-> Monitoria: varios graduandos
P&D: um graduando(pibic, pibiti e pivic)
varios graduandos(coop. empresas)
PET: varios graduandos
Relatório para o projeto de Laboratório de Programação 2
Central de Projetos
Explanação geral:
Busquei desenvolver o sistema pedido de forma a utilizar todos os conhecimentos aprendidos nas disciplinas de p2 e lp2 este período, focando o reuso de código e a legibilidade, para este tanto, utilizo-me principalmente de herança quando possível (nos casos pedidos é o que se adequa melhor), chamadas polimórficas quando possível e inclusive criando interfaces para possibilitar a chamada polimórfica quando não seria conveniente usá-lo por meio da herança visto que não todas as subclasses possuem aquelas características, e uma documentação extensa sobre o código privilegiando a legibilidade. Em alguns casos em que era possível o uso de polimorfismo preferi a implementação local, visto que esta tinha uma complexidade menor, privilegiando assim a legibilidade. Faço uso do junit para criação dos testes de unidade, de forma que abranja os mais diferentes tipos de casos de uso do programa, com uma grande gama de class
@gabrielfern
gabrielfern / gist:61633effa9889b5478ea2d92aa8a0d37
Created May 30, 2017 02:59 — forked from m00nlight/gist:a076d3995406ca92acd6
Python merge sort in place, so space complexity is O(1)
import random
def merge_sort(xs):
"""Inplace merge sort of array without recursive. The basic idea
is to avoid the recursive call while using iterative solution.
The algorithm first merge chunk of length of 2, then merge chunks
of length 4, then 8, 16, .... , until 2^k where 2^k is large than
the length of the array
"""
@gabrielfern
gabrielfern / toArray.com
Created June 22, 2017 03:23
my toArray
@SuppressWarnings("unchecked")
@Override
public T[] toArray() {
T[] result = null;
if (!this.isEmpty()) {
result = (T[]) new Object[1];
result[0] = this.data;
result = this.juntaArrays(result, this.next.toArray());
}
if (result == null) {
@gabrielfern
gabrielfern / remove.io
Last active June 22, 2017 03:33
remove - recursive linked list
@Override
public void remove(T element) {
if (element != null) {
if(!isEmpty()) {
if(this.getData().equals(element)) {
this.setData(this.getNext().getData());
if(!this.getNext().isEmpty()) {
this.setNext(this.getNext().getNext());
}
}
@gabrielfern
gabrielfern / git-tag-delete-local-and-remote.sh
Created July 27, 2017 00:15 — forked from mobilemind/git-tag-delete-local-and-remote.sh
how to delete a git tag locally and remote
# delete local tag '12345'
git tag -d 12345
# delete remote tag '12345' (eg, GitHub version too)
git push origin :refs/tags/12345
# alternative approach
git push --delete origin tagName
git tag -d tagName
@gabrielfern
gabrielfern / relogio.py
Created August 16, 2017 02:16 — forked from ramalho/relogio.py
Um relógio bem simples feito em Python com Tkinter. Vídeo de demonstração: http://www.youtube.com/watch?v=xCiPshN9nOs
#!/usr/bin/env python3
import tkinter
from time import strftime
def tic():
rel['text'] = strftime('%H:%M:%S')
def tac():
tic()
rel.after(1000, tac)
i = 1
while i <= 5:
print(i, 'out')
i += 1
i = 1
while i <= 5:
print(i, input())
i += 1
#include "stdlib.h"
// declaracoes das funcoes para por no ".h"
double mediana(int, double *);
double *moda(int, double *);
// ate aqui
// definicoes das funcoes