·

Ciência da Computação ·

Sistemas Digitais

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Fundamentos de Sistemas Digitais 4646B04 Avaliação 4 FUNDAMENTOS DE SISTEMAS DIGITAIS O trabalho consiste em calcular a mediana média e moda para um vetor V de tamanho n 1 ORIENTAÇÕES GERAIS Entrega do Trabalho 02dezembro Sextafeira 23h59 Entregar um arquivo em formato zip nomeandoo nomeAluno1nomeAluno2zip contendo relatoriopdf e tpasm 11 Avaliação Arquivo 1 relatoriopdf contendo DETALHAMENTO DO TRABALHO Apresentar pseudocódigo do programa explicando o mesmo aceitase código em C C e Java uma tabela que relacione as principais variáveis do pseudocódigocódigo com os registradores da arquitetura MIPS dois exemplos de área de dados diferente da fornecida com n par e n ímpar com n 10 mostrando os resultados esperados RESULTADO DA SIMULAÇÃO NO MARS Telas capturadas do MARS com a área de dados antes e após a execução Estas telas devem apresentar a simulação com a área de dados definida pelos alunos para n par e n ímpar com n 10 Arquivo 2 tpasm Código em linguagem assembly com comentários e corretamente indentado contendo cálculo correto da média cálculo correto da mediana cálculo correto da moda Só haverá avaliação desta parte se o MARS executar corretamente o código fornecido Erros de sintaxe zeram esta parte Cada alunogrupo terá necessariamente duas áreas de dados com valores diferentes do apresentado neste texto incluindo o vetor de dados e o valor de n maior que 10 obrigatoriamente n deve ser par em uma área de dados e ímpar na outra 2 ESPECIFICAÇÃO DO TRABALHO Em estatística a moda a média e a mediana são conhecidas como medidas de tendências centrais sendo utilizadas para analisar o comportamento de um conjunto de dados estatísticos Mediana Dado um conjunto de dados a mediana é o valor que ocupa a posição central dos valores quando organizamos esses dados em ordem Para encontrar a mediana ordenase o vetor em ordem crescente ou decrescente e encontrase o termo que ocupa a posição central Se o número de elementos no vetor n é ímpar a mediana é o valor central Se n for par a mediana é dada pela média aritmética simples dos dois valores centrais Pseudocódigo para auxiliar a codificação em assembly usar instrução assembly SRL para dividir por 2 Fundamentos de Sistemas Digitais 4646B04 ordenavet se n é ímpar mediana vetn2 senão mediana vetn21 vetn2 2 Média Existem vários tipos de média sendo as mais comuns à média aritmética simples e a média aritmética ponderada Neste trabalho calcularemos a média aritmética simples sendo calculada pela soma de todos os elementos do vetor dividida pela quantidade de elementos do vetor Moda Em um conjunto de dados a moda é aquele resultado mais recorrente no vetor ou seja com maior frequência absoluta Pode haver mais de um valor para a moda Exemplo v 7 20 1 7 1 moda 17 Neste trabalho iremos considerar apenas 1 valor para a moda mesmo que haja mais de um valor para esta medida Pseudocódigo para auxiliar a codificação em assembly vezes 0 moda 0 for i0 in i cont 0 for ji jn j if vetj veti cont if cont vezes moda veti vezes cont Observação para a mediana e a média considerar valores inteiros dado que não temos ponto flutuante no nosso processador 21 Exemplo Dado o vetor v 7 20 8 5 1 8 4 2 5 5 14 12 3 8 com n14 Mediana ordenase o vetor 1 2 3 4 5 5 5 7 8 8 8 12 14 20 57 2 6 Média aritmética simples 𝑚é𝑑𝑖𝑎 𝑖𝑛1 𝑣𝑖 𝑖0 𝑛 102 14 728 Moda 7 20 8 5 1 8 4 2 5 5 14 12 3 8 58 pois os valores 5 e 8 aparecem 3 vezes no vetor 22 Observações 1 Utilizar o código de divisão serial como subrotina no material de apoio divserialasm para o cálculo da média aritmética divisão por n 2 Para o cálculo da mediana usar a ordenação vista em aula pode ser na forma de uma subrotina 3 Utilizar SRL para dividir n por 2 exemplo srl s1s01 s1s02 A divisão por dois é necessária para o da média dos valores centrais para a mediana quando n for par Fundamentos de Sistemas Digitais 4646B04 3 EXEMPLO DE EXECUÇÃO NO SIMULADOR MARS data n word 14 mediana word 0 media word 0 moda word 0 vezes word 0 vet word 7 20 8 5 1 8 4 2 5 5 14 12 3 8 Área de dados inicial no MARS Área de dados após a execução 4 ANEXO I CÓDIGO ASSEMBLY PARA DIVISÃO SERIAL subrotina divider divide o conteúdo de 1 por s0 e retorna em v1 Este anexo ilustra como utilizar a subrotina para a divisão serial Devese carregar o dividendo em s1 e o divisor em s0 e depois chamar a subrotina com a instrução jal O quociente estará no registrador v1 text globl main main exemplo de uso da divisão lw s1 d1 lê o dividendo lw s0 d2 lê o divisor jal divider resposta em v0 e v1 fim j fim s1 s0 v0 resto v1 divisão divider lui t0 0x8000 máscara para isolar bit mais significativo li t1 32 contador de iterações Algoritmo 1 desloca PA para a esquerda 1 bit 2 sub PB 3 if sub0 then A00 else A01 Psub P A B n n n1 Deslocamento 0 1 n1 n1 n1 Controle sub n vet vetor ordenado Fundamentos de Sistemas Digitais 4646B04 xor v0 v0 v0 registrador Pv0Av1 com 0 e o dividendo s1 add v1 s1 0 dloop and t2 v1 t0 isola em t2 o bit mais significativo do reg A v1 sll v0 v0 1 desloca para a esquerda o registrado PA sll v1 v1 1 beq t2 0 di1 ori v0 v0 1 coloca 1 no bit menos significativo do registador Pv0 di1 sub t2 v0 s0 subtrai Pv0 do divisor s0 blt t2 0 di2 add v0 t2 0 se subtração positiva Pv0 recebe valor da subtração ori v1 v1 1 e Av1 recebe 1 no bit menos significativo di2 addi t1 t1 1 decrementa o número de iterações bne t1 0 dloop jr ra data d1 word 0x3FABCD 4172749 resposta em v1 28910xB4B resto em v0 103640C d2 word 0x5A3 1443