A CIÊNCIA DA COMPUTAÇÃO
Por: Matheus Pereira • 20/10/2020 • Trabalho acadêmico • 2.266 Palavras (10 Páginas) • 154 Visualizações
[pic 1]
Campus Flamboyant
CIÊNCIA DA COMPUTAÇÃO
ALUNO:
EDUARDO GUIMARÃES DE JESUS – Ra: f065308
GOIÂNIA
2020
INDÍCE
OBJETIVO DO TRABALHO
Esse trabalho tem como objetivo mostrar a eficiência da linguagem de programação no quesito rapidez, facilidade e automatização para desempenhar trabalhos que, feitos manualmente, seriam muito mais complicados de executar.
Esse trabalho tem como fim, apresentar técnicas e implementar todo conhecimento obtido em aulas acerca de banco de dados e algoritmos de ordenação utilizando as linguagens de programação JAVA e MySQL para a criação de um sistema computacional, cujo intuito é absorver os tempos de uma corrida e inseri-los de forma automática no programa, utilizando de um conjunto de técnicas de programação para ordenar e catalogar, gerando a melhor visualização dos resultados.
INTRODUÇÃO
O Algoritmo pode ser caracterizado como um conjunto de regras e procedimentos lógicos aplicados a um número finito de dados que são utilizados mediante a solução de determinados tipos de problemas. Podem ser comparados a uma receita de bolo, sendo uma sequência de passos que podem ser repetidos ou necessitam de decisões (comparação ou lógica) para que o objetivo seja concluído. Podem ser escritos de diferentes formas que levam a um mesmo resultado, porém existem maneiras mais fáceis ou mais eficazes para determinados tipos de sistemas.
Existem a diversos tipos de algoritmos sendo eles: pseudocódigo, descrição narrativa, fluxograma, e diagrama de Chapin.
O pseudocódigo é uma forma genérica de escrever um algoritmo, de modo simples, como por exemplo, o Portugol que pode ser facilmente interpretado por qualquer pessoa, sem a necessidade de conhecer sintaxe de nenhuma linguagem de programação.
A descrição narrativa utiliza uma linguagem nativa de quem escreve para especificar os passos para a realização da tarefa, contendo entrada, processamento e saída. Não segue um padrão definido e pode sofrer diversas interpretações por quem lê.
O fluxograma é uma forma de representar um algoritmo que utiliza de símbolos ou figuras geométricas que possuem seu significado próprio para definir cada função do programa. Essa representação mostra o fluxo do algoritmo e também elimina as várias interpretações.
Também possuem os algoritmos de ordenação, que por sua vez colocam os elementos de uma dada sequência em certa ordem efetuando sua ordenação completa ou parcial. Tem como fim a fácil recuperação dos dados de uma lista, sendo eles os mais conhecidos: Bubble Sort, Selection Sort, Quick Sort, Insertion Sort, entre outros.
O Blubble Sort por sua vez é o algoritmo mais simples, porém o menos eficiente. O algoritmo executa n operações relevantes, onde o n representa o número de elementos do vector. A complexidade desse algoritmo é de ordem quadrática onde são utilizados no máximo n² operações. Não é recomendado para programas que requerem velocidade e operem com grande quantidade de dados.
O Selection Sort é caracterizado por passar o menor valor do vetor sempre para a posição requerida, de forma que o segundo menor valor se encontra na segunda posição, e assim sucessivamente. Esse processo é repetido até que a lista esteja ordenada. É simples de ser implementado comparado aos demais, ocupa menos memória, e é bastante utilizado para ordenar vetores pequenos. Porém não é muito estável, e é um dos mais lentos para vetores grandes.
O Insertion Sort é simples e eficiente quando aplicado em pequenas listas. Atua de modo que menor número da vez é inserido ao lado esquerdo de seu sucessor, assim sucessivamente. A medida que avança deixa os elementos da esquerda ordenados. É mais utilizado quando o arquivo está um pouco mais ordenado, e é estável. Porém há um alto custo de movimentação de elementos no vetor.
O Quick Sort é um algoritmo muito rápido e eficiente inventado por C.A.R Hoare. Nele é escolhido um número como pivô fazendo com que ele sequencialmente troque de posição com o menor número da sua direita, e em seguida com o maior número de sua esquerda, até a ordenação por completo da lista. Podem ser utilizados dois ou mais pivôs para fazer a ordenação.
DESENVOLVIMENTO
O programa se inicia com a ênfase na interface do cronômetro. É dado de início o foco no layout e na parte de orientação a objetos, inserindo os futuros marcadores de tempo do programa [pic 2] que serão os contadores tempo: minuto, segundo e milésimo. Esses valores precisam estar definidos como variável “public static” para poder ser acessado em determinada parte do código. Após isso é orientada uma aba apenas para a contagem de milésimos.
Neste programa foi necessário o uso dos threads para executar o código, com a utilização de looping, para atribuirmos uma função de “infinito” ao relógio. thread é uma sequência de comandos sendo executada em um programa ou processo. Se você tem dois threads, terá duas sequências de comandos rodando em paralelo no mesmo processo.
Para dar início a essa Thread é utilizado o método “run()”, assim, para inseri-lo é utilizado o “implements Runnable()” que vai ser utilizado para inserir a contagem. Após isso é declarado um nome para as variáveis de tempo que serão referenciadas nas classes dos milésimos, segundos e minutos. Assim é dado o nome de “Milesimo” para a caixa de texto dos milésimos, “Segundo” para segundos e “Minuto” para os minutos. O próximo passo a ser feito na aba dos milésimos é inserir o valor contido na caixa de texto, dada inicialmente por “0”, na variável “i” assim escrito por “int i = Integer.parseInt(Tela.Milesimo.GetText());” dentro do “public void run(){}”
[pic 3] [pic 4]
Como o contador de tempo é infinito é inserido o comando “for (;;)”, em seguida o comando “Tela.Milesimo.setText(i + "");” para atualizar a cada laço de repetição o valor da caixa de texto. É preciso também modificar o valor do “i”, inserindo o “i++;”. Como a variável que está sendo trabalhada é a dos milésimos, o valor máximo que ela deve atingir para supostamente mudar o tempo do “segundos” é 100 milésimos, assim retornando a zero para modificar o próximo valor do segundo. Contudo, o código utilizado é o:
...