quarta-feira, 28 de julho de 2021

Divulgando: Escola Regional de Computação do Ceará, Maranhão, Piauí (ERCEMAPI) - 2021


Foi prorrogado até o dia 02 de agosto o prazo para submissão de artigos na nona edição da Escola Regional de Computação do Ceará, Maranhão, Piauí (ERCEMAPI), evento que ocorrerá online, de 14 a 16 de setembro. A Escola faz parte de uma série de eventos promovidos pela Sociedade Brasileira de Computação (SBC) e tem como objetivo principal aproximar e facilitar a presença dos estudantes de graduação e pós-graduação em eventos da área de computação. Clique AQUI para conferir o site do evento.

Podem submeter trabalhos estudantes de graduação e pós-graduação, pesquisadores e profissionais da área. Os artigos completos, que passarão por processo de avaliação duplamente cega, devem seguir o modelo da SBC, sem indicação de autoria.

O encontro recebe submissões sobre tópicos gerais da área da Computação, com temas como robótica, redes de computadores, inteligência artificial, inclusão digital, ciência de dados, análise de aprendizagem, informática industrial, jogos e gamificação, mineração de dados e segurança da informação, entre outros.


Fonte aqui.

ERCEMAPI 2021 - página oficial aqui.

segunda-feira, 26 de julho de 2021

Scilab: ordenando um vetor de forma simples e (razoavelmente) eficiente

 


Existem vários algoritmos para ordenar um vetor numérico. Entre esses algoritmos, podemos citar:

• Ordenação por troca:

BubbleSort (método da bolha)

QuickSort (método da troca e partição)

• Ordenação por inserção

InsertionSort (método da inserção direta)

BinaryInsertionSort (método da inserção direta binária)

• Ordenação por seleção

SelectionSort (método da seleção direta)

HeapSort (método da seleção em árvore)

• Outros métodos:

MergeSort (método da intercalação)

BucketSort (método da distribuição de chave)

Alguns desses algoritmos são simples de implementar, mas são lentos. O código abaixo usa o comando "max" do Scilab que localiza o maior valor dentro de um vetor e guarda esse valor em um novo vetor, logo o novo vetor já nasce ordenado (do maior para o menor). Esse método é muito mais eficiente que o método BubbleSort, por exemplo. Código:

NN = 1000; x = round(1000*rand(1,NN,'u')); 
//disp(x); ===> vetor desordenado
disp('ord. por maximo');
xo = x;
for k=1:max(size(x))
    [aa,bb]=max(x);
    xo(k) = aa;
    x(bb)=-1;
end
//disp(xo); ===> vetor ordenado

segunda-feira, 12 de julho de 2021

Cálculo recursivo de fatorial usando o Scilab



"Em programação, a recursividade é um mecanismo útil e poderoso que permite a uma função chamar a si mesma direta ou indiretamente, ou seja, uma função é dita recursiva se ela contém pelo menos uma chamada explícita ou implícita a si própria". Nos informa o professor Wellington Lima dos Santos da UFGD/FACET. A função recursiva, em geral, possui pelo menos um caso base, que interrompe a recursividade. O prof. Wellington Santos nos adverte das desvantagens de um algoritmo recursivo: "Por usarem intensivamente a pilha, o que requer alocações e desalocações de memória, os algoritmos recursivos tendem a ser mais lentos que os equivalentes iterativos, porém pode valer a pena sacrificar a eficiência em benefício da clareza. Algoritmos recursivos são mais difíceis de serem depurados durante a fase de desenvolvimento".

Nesta postagem mostraremos um exemplo simples de recursividade no cálculo do fatorial de um número inteiro usando o Scilab. Lembramos que: $$ 0! = 1$$ $$ 1! = 1$$ $$ 2! = 2\times 1 = 2$$ $$ n! = n\times (n-1)!$$

Código: 

clc;  /// limpando a tela

function ff=ffat(x)  /// função fatorial recursiva
    disp(x);   /// mostrando o valor de x
    if x>1 then ff = x*ffat(x-1); /// chamando a função
        else ff=1; end;
endfunction

xx = 7;   /// um valor inicial para xx
fx = ffat(xx);  /// cálculo do fatorial
disp(fx);  /// mostrando o valor calculado.