Rešitev: program Sestava bločne matrike (Java)

Iz MaFiRaWiki

Naloga: program Sestava bločne matrike

Nasvet

Poglej si, kako je bil napisan program Urejanje tabele. Program naj uporablja 4 metode, in sicer:

  • metodo main, ki bo zbrala podatke ter klicala druge metode ter na koncu rezultat izpisala,
  • metodo, ki bo izračunala dimenzijo bločne matrike (vsota vrednosti vektorja),
  • metodo, ki bo sestavljala vrstice bločne matrike s pomočjo vektorja in ustrezne vrstice iz matrike,
  • metodo, ki bo iz vrstic iz zgornje metode sestavila bločno matriko.

  1. import java.io.*;
  2.  
  3. public class Matrika{
  4.  
  5. public static void main(String[] args) throws IOException{
  6. System.out.print("Vnesi n, ki bo predstavljal visino in sirini matrike:");
  7. int dim = Integer.parseInt(vhod.readLine());
  8. int[][] kvader = new int[dim][dim];
  9.  
  10. System.out.print("Vnesi stevilo za:");
  11. for(int i = 0; i < dim; i++){
  12. for(int j = 0; j < dim; j++){
  13. System.out.println(""+(i+1)+". vrstico v "+(j+1)+". stolpcu: ");
  14. kvader[i][j] = Integer.parseInt(vhod.readLine());
  15. }
  16. }
  17.  
  18. int[] vektor = new int[dim];
  19. System.out.print("Vnesi stevilo za ");
  20. for(int i=0; i < dim; i++){
  21. System.out.println(""+(i+1)+". mesto vektorja: ");
  22. vektor[i] = Integer.parseInt(vhod.readLine());
  23. }
  24.  
  25. int c = vsota(vektor);
  26. System.out.println("C= "+c);
  27. int[][] matrika = new int[c][c];
  28. matrika = matr(kvader, vektor);
  29.  
  30. System.out.println("Blocna matrika izgleda tako:");
  31. for(int i = 0; i < c; i++){
  32. for(int j = 0; j < c; j++){
  33. System.out.print(matrika[i][j] + " ");
  34. }
  35. System.out.print("\n");
  36. }
  37. }
  38.  
  39. public static int vsota (int[] a){
  40. int racun = 0;
  41. for (int i=0; i < a.length; i++){
  42. racun = racun + a[i];
  43. }
  44. return racun;
  45. }
  46.  
  47. public static int[][] matr (int[][] podatki, int[] dim){
  48. int c = vsota(dim);
  49. int[][] matrika = new int[c][c];
  50. int stevec = 0;
  51. for (int i=0; i < dim.length; i++){
  52. for (int j = 0; j < dim[i]; j++){
  53. matrika[stevec] = vrstica(podatki[i], dim);
  54. stevec++;
  55. }
  56. }
  57. return matrika;
  58. }
  59.  
  60. public static int[] vrstica (int[] podatki, int[] dim){
  61. int n = vsota(dim);
  62. int[] vrstica = new int[n];
  63. int k = 0;
  64. for (int i=0; i < dim.length; i++){
  65. for (int j=0; j < dim[i]; j++){
  66. vrstica[k]=podatki[i];
  67. k++;
  68. }
  69. }
  70. return vrstica;
  71. }
  72. }
Osebna orodja