Scitanie a odcitanie matic

popis:triedy nefunguju samostatne

-----------------------------------------------------------------------------------------------------------------------

/**
 * @author Marek Tomčík
 * @version (5.02.2010)
 */

import java.util.*;
import java.lang.String;



public class Main
{
   
   
  public Main()
  {

  }

  public static void main(String[] args) 
  {  
  Scanner scr;
  System.out.print("\f");
  StvorcovaMatica maticaA, maticaB, maticaVysledna;
  ScitanieMatic operacia;  
  operacia = new ScitanieMatic(); 
   
  System.out.print("Ake rozmery nxn ma maju mat matice? :"); // vytvori maticu
  scr = new Scanner(System.in); int n = scr.nextInt(); // zisti ake cislo bolo stlacene
  System.out.print("Ak chcete nahodne generovat maticu A stlacte enter, ak chcete naplnit maticu rucne, stlacte n a potvrdte enter:");
  scr = new Scanner(System.in);  
  String matA = scr.nextLine(); // zisti aky znak bol stlaceny na klavesnici
  if ((matA.equals("n")) || (matA.equals("A"))) { maticaA = new StvorcovaMatica(n); maticaA.napisHodnoty(); } //ak plati vykona
  else { System.out.print("Od akej po aku hodnotu sa ma naplnit matica A? :"); //ak predchadzajuca podmienka neplatila vykona tento krok
  int odA = scr.nextInt(); int doA = scr.nextInt();
  maticaA = new StvorcovaMatica(n); maticaA.nahodneNaplnMatice(odA, doA); } //vytvori maticu s nahodne generovanymi cislami v rozmedzi zadanom
  System.out.print("Ak chcete nahodne generovat maticu B stlacte enter, ak chcete naplnit maticu rucne, stlacte n a potvrdte enter :");
  scr = new Scanner(System.in);  
  String matB = scr.nextLine();
  if ((matB.equals("n")) || (matB.equals("A"))) { maticaB = new StvorcovaMatica(n); maticaB.napisHodnoty(); } //vytvori maticu ktoru naplni uzivatel cislami
  else { System.out.print("Od akej po aku hodnotu sa ma naplnit matica B? :"); 
  int odB = scr.nextInt(); int doB = scr.nextInt();
  maticaB = new StvorcovaMatica(n); maticaB.nahodneNaplnMatice(odB, doB); }
  maticaVysledna = new StvorcovaMatica(n); //vytvori pomocnu maticu kde sa budu ukladat vysledna matica z operacii A a B

   
  System.out.print("Chcete vypisat matice A a B , a=ano, n=nie? :"); //ci chce pouzivatel vidiet svoje matice 
  scr = new Scanner(System.in);  
  String otazka = scr.nextLine();
  if ((otazka.equals("a")) || (otazka.equals("A"))) {
  System.out.println("Matica A \n" + maticaA + "\nMatica B \n" + maticaB);}

   
  System.out.print("Pre scitanie matic stlacte: + a potvrdte enter"); // otazka pre pouzivatela 
  scr = new Scanner(System.in); // zistuje
  String co = scr.nextLine(); // aka klavesa bola stlacena, resp. aky znak 
  if (co.equals("+")) { operacia.scitanie(maticaA,maticaB,maticaVysledna);
  System.out.println("Matica A+B \n" + maticaVysledna + "\n"); }
   
  }
}

---------------------------------------------------------------------------------------------------------------------


/**
 * @author Marek Tomčík
 * @version (5.02.2010)
 */
import java.util.*;
public class StvorcovaMatica 

  public int pocR;
  public int pocS;
  public double [][] matica;

  /**
  * Konstruktor vytvori maticu a x a
  */
  public StvorcovaMatica(int pocetStlpcovApocetRiadkov)  
  {
  pocR = pocetStlpcovApocetRiadkov;
  pocS = pocR;
  matica = new double[pocR][pocS];

  }

   
/**
 * Metoda naplni nahodnymi cislami maticu A a B podla zvoleneho rozsahu
 */

  public boolean nahodneNaplnMatice(int SpodnyRozsah, int HornyRozsah)
  {
  this.pocR = pocR;
  this.pocS = pocS;
  Random rnd = new Random(); // inštancia generátora náhodných čísel
   
  if ((pocR > matica.length) || (pocS > matica.length)) return false;
   
  for (int i=0; i<pocR; i++)
  for (int j=0; j<pocS; j++) {
  matica[i][j] = SpodnyRozsah + rnd.nextInt(HornyRozsah - SpodnyRozsah + 1);
  }
  return true;
  }

   
/**
 * napiste svoju vlastnu maticu s cislami ake si urcite  
 */
  public void napisHodnoty()
  {
  Scanner scr = new Scanner(System.in);
  System.out.println("Matica");

  for (int i=0; i< pocS; i++)
  { 
  for (int j=0; j<pocS ;j++)
  { 
  System.out.print((i+1)+" : "+(j+1)+"    ");
  int cislo = scr.nextInt();
  matica[i][j] = cislo;

  }
  System.out.println();
  }
  }
  public String toString() {
  String s = "";
  for (int i=0; i<pocR; i++) {
  for (int j=0; j<pocS; j++) {
  s = s + "\t" + matica[i][j];
  }
  s = s + "\n";
  }
  return s;
  }  

   
}

--------------------------------------------------------------------------------------------------------------------


/**
 * @author Marek Tomčík
 * @version (5.02.2010)
 */
public class ScitanieMatic
{
   
  public static double[][] vratMaticu(StvorcovaMatica mm)
  {
  return mm.matica;
  }

/**
 * Scita matice A + B a ulozi do vyslednej matice
 */  
  public void scitanie(StvorcovaMatica A,StvorcovaMatica B,StvorcovaMatica Vysledna)
  {
  double [][] maticaA = vratMaticu(A);
  double [][] maticaB = vratMaticu(B);
  double [][] maticaVysledna = vratMaticu(Vysledna);
  for (int i=0; i<maticaA.length; i++)
  for (int j=0; j<maticaA.length; j++) { 
  maticaVysledna[i][j] = maticaA[i][j] + maticaB[i][j];
  }
  }

   
 }  



Informácie:

Autor: Marek Tomčík
www: http://
Kategória: Matematika
Jazyk: Java
Dátum:4/26/2010 11:31:13 AM



Komentáre:



Pridaj komentár:

Pre vloženie komentáru sa musíte najprv prihlásiť.






 Fórum:
Hardware
Software
Programovanie
Všeobecné témy

 Programy:
C#
C/C++
Java
Pascal
PHP

Linky:

Vretenova webova stranka o programovani v Cpp,c++,C,linuxe...

Wdesign

ByteLeak.com diskusné fórum

BlueBoard.cz