Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

Podobné dokumenty
1. Téma 12 - Textové soubory a výjimky

OOPR_05. Případové studie

Přehled probírané látky

Principy objektově orientovaného programování

OOPR_05. Případové studie

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

Úvod do programování - Java. Cvičení č.4

KTE / ZPE Informační technologie

Typický prvek kolekce pro české řazení

Abstraktní datové typy: zásobník

Deklarace a vytváření

Datové struktury. alg12 1

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Programování v Javě I. Leden 2008

5 Rekurze a zásobník. Rekurzivní volání metody

Programování v Javě I. Únor 2009

KTE / ZPE Informační technologie

Java a XML. 10/26/09 1/7 Java a XML

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Programovací jazyk Java

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Konstruktory. Konstruktor je speciální metoda, pro vytváření a inicializaci nových objektů (instancí). Název metody je totožný s názvem třídy.

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Soubor jako posloupnost bytů

Teoretické minimum z PJV

Výjimky. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

RMI Remote Method Invocation

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

8. přednáška: Soubory a proudy

Objektově orientované programování 1 XOBO1. Autor: Doc. Ing. František Huňka, CSc.

Jazyk C# (seminář 5)

Jazyk C# (seminář 6)

3 KTE / ZPE Informační technologie

public class Karel { private int position; public boolean issmiling; public int getposition() { return position;

Abstraktní třída a rozhraní

Java - řazení objektů

Tato tematika je zpracována v Záznamy přednášek: str Problém: Proveďte jednoduchou analýzu zadaného textu (četnost výskytu písmen).

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12.

Algoritmizace a programování

Objektové datové typy

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

PREPROCESOR POKRAČOVÁNÍ

8 Třídy, objekty, metody, předávání argumentů metod

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Objektově orientované programování

Projekty pro výuku programování v jazyce Java

Algoritmizace a programování

Návrhové vzory Design Patterns

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)

Textové soubory. alg9 1

JUnit příklad na použití

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

7. Dynamické datové struktury

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Jazyk C# a platforma.net

Zapouzdření. Tomáš Pitner, upravil Marek Šabo

Obsah přednášky. dědičnost modifikátory (specifikátory) přístupu

Regulární výrazy. Vzory

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

Dynamické datové struktury I.

Obsah přednášky. dědičnost modifikátory (specifikátory) přístupu

17. Projekt Trojúhelníky

Generické programování

Úvod do programovacích jazyků (Java)

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

Java - výjimky. private void vstup() throws IOException {... }

IRAE 07/08 Přednáška č. 7. Začátek (head)

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Tato tematika je zpracována v Záznamy přednášek: str Problém: Proveďte jednoduchou analýzu zadaného textu (četnost výskytu písmen).

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Vytváření a použití knihoven tříd

Chain of responsibility

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ;

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

Tabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Seminář Java II p.1/43

7. Datové typy v Javě

9. přednáška - třídy, objekty

Programování v C++ 3, 3. cvičení

Rozklad problému na podproblémy

Podmínky na zápočet. Java, zimní semestr

SW_12. Vzor Příkaz - Command Vzor Návštěvník - Visitor

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů

KTE / ZPE Informační technologie

20. Projekt Domácí mediotéka

Řídicí struktury. alg3 1

PŘETĚŽOVÁNÍ OPERÁTORŮ

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Mělká a hluboká kopie

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

Návrhové vzory design patterns význam a použití

Spojové struktury. Spojová struktura (linked structure):

URČITÝM ZPŮSOBEM PODOBNÉ

Transkript:

Vektor a Matice

Základní pojmy Matice(řádky, sloupce) Matice(4,6) sloupce řádky (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6)

Základní pojmy Matice je složena z vektorů vektory tvoří řádky sloupce řádky (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) vektor[0] vektor[1] vektor[2] vektor[3]

Kompozice objektů 1 * Matice Vektor

public class Vektor { private int[] polesloupcu; public Vektor(int sloupce) { polesloupcu = new int[sloupce]; //pocetprvku = sloupce; public int getprvek(int i) { if((i >= 0) && (i < polesloupcu.length)) return polesloupcu[i]; else return 0; public void setprvek(int i, int h) { if((i >= 0) && (i < getpocetprvku())) polesloupcu[i] = h; else System.out.println("Chyba zapisu vektor"); public int[] getvektor() { return polesloupcu; public void setvektor(int[] nvektor){ polesloupcu = nvektor; Vektor 5

public String tostring() { String retez = ""; for(int i = 0; i < getpocetprvku(); i++) retez += polesloupcu[i] + " "; return retez; public void tisk() { System.out.println(toString()); public int getpocetprvku() { return polesloupcu.length; Vektor pokračování 6

public class VektorTest { public static void main(string[] args) { Vektor vektor = new Vektor(6); vektor.tisk(); vektor.setprvek(0, 12); vektor.setprvek(3,-44); vektor.setprvek(5,55); vektor.tisk(); VektorTest 7

import javax.swing.joptionpane; public class Matice { private Vektor[] poleradku; // konstruktor public Matice(int radek, int sloupec) { poleradku = new Vektor[radek]; for(int i = 0; i < radek; i++) poleradku[i] = new Vektor(sloupec); public int getpocetsloupcu() { return getvektor(0).getpocetprvku(); public int getpocetradku() { return poleradku.length; // pristupova metoda public int getprvek(int rd, int sl) { return getvektor(rd).getprvek(sl); //r[rd].get(sl); // modifikacni metoda public void setprvek(int rad, int slp, int h) { getvektor(rad).setprvek(slp, h); //r[rad].set(slp, h); Matice 8

public String tostring() { String str = "Matice tisk:\n"; for(int i = 0; i < getpocetradku(); i++) str += getvektor(i).tostring() + "\n"; return str; public void tisk() { System.out.println(toString()); public void naplneni() { for(int i = 0; i < getpocetradku(); i++) for(int j = 0; j < getpocetsloupcu(); j++) setprvek(i, j, zadejprvekmatice(i, j)); Matice - pokračování public int zadejprvekmatice(int i, int j){ String odp = JOptionPane.showInputDialog(""+ (i+1) + ", " +(j+1) + " : "); return Integer.parseInt(odp); // pomocna metoda public Vektor getvektor(int cislo) { return poleradku[cislo]; 9

public Matice soucetmatic(matice matice){ if(getpocetradku()!= matice.getpocetradku()&& getpocetsloupcu()!= matice.getpocetsloupcu()) { System.out.println("Pocet radku nebo sloupcu se lisi "); return null; Matice maticesoucet = new Matice(getPocetRadku(), getpocetsloupcu()); for(int i = 0; i < getpocetradku(); i++) for(int j = 0; j < getpocetsloupcu(); j++) maticesoucet.setprvek(i, j, getprvek(i, j)+ matice.getprvek(i, j)); return maticesoucet; Matice - součet 10

public Matice soucinmatic (Matice matice) { if(getpocetradku()!= matice.getpocetsloupcu()) { System.out.println("Pocet radku: "+ getpocetradku() + " pocet sloupcu: " + matice.getpocetsloupcu()); return null; Matice maticesoucin = new Matice(getPocetRadku(), getpocetradku()); int prvek; for(int i = 0; i < getpocetradku(); i++) { for(int k = 0; k < getpocetradku(); k++) { prvek = 0; for(int j = 0; j < getpocetsloupcu(); j++) prvek += getprvek(i, j) * matice.getprvek(j, k); maticesoucin.setprvek(i, k, prvek); return maticesoucin; Matice součin m c i k = a i j b j k j=0 11

public class MaticeTest { public static void main(string[] args) { /* Matice m = new Matice(4,6); m.tisk(); m.setprvek(0, 2, 123); m.setprvek(2,0, -55); m.tisk(); m.naplneni(); m.tisk(); */ System.out.println("Matice soucet:"); Matice s1 = new Matice(2, 2); s1.naplneni(); Matice s2 = new Matice(2, 2); s2.naplneni(); s1.tisk(); s2.tisk(); Matice s3 = s1.soucetmatic(s2); s3.tisk(); MaticeTest 12

System.out.println("Soucin matic:"); Matice a = new Matice(2, 3); a.naplneni(); Matice b = new Matice(3, 2); b.naplneni(); a.tisk(); b.tisk(); Matice c = a.soucinmatic(b); c.tisk(); Matice d = b.soucinmatic(a); if(d!= null) d.tisk(); MaticeTest 13