program_mult_jon.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. @target: mips, mipt2
  2. package main;
  3. const (
  4. LIN = 20
  5. COL = 20
  6. NUM_LINHAS_MULT = 5
  7. )
  8. var (
  9. preenchendo = false
  10. state int
  11. matrizA [LIN][COL]int
  12. matrizB [LIN][COL]int
  13. matrizR [LIN][COL]int
  14. )
  15. func preenche(){
  16. var k = 1
  17. for i := 0; i < LIN ; i++ {
  18. for j := 0; j < COL ; j++ {
  19. matrizA[i][j] = k
  20. matrizB[i][j] = k
  21. k++
  22. }
  23. }
  24. }
  25. func multiplica(initial int) {
  26. aux := 0
  27. limit := initial + NUM_LINHAS_MULT
  28. for i := initial; i < limit; i++ {
  29. for j := 0; j < COL; j++ {
  30. for k := 0; k < LIN; k++ {
  31. aux = aux + (matrizA[i][k] * matrizB[k][j])
  32. }
  33. matrizR[i][j] = aux
  34. aux = 0
  35. }
  36. }
  37. }
  38. func main() {
  39. if !preenchendo {
  40. preenchendo = true
  41. preenche()
  42. preenchendo = false
  43. }
  44. for preenchendo {
  45. continue
  46. }
  47. switch state {
  48. case 0:
  49. multiplica(0)
  50. case 1:
  51. multiplica(5)
  52. case 2:
  53. multiplica(10)
  54. case 3:
  55. multiplica(15)
  56. }
  57. state++
  58. }