Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 26. 10. 2015 21:42

bert.blader
Příspěvky: 96
Škola: Západočeská univerzita v Plzni
Pozice: Student
Reputace:   
 

Výpis největšího prvku na vedlejší diagonále

Dobrý den, mám  za úkol napsat v javě program, kterému zadám matici a on vypíše souřadnice největšího a nejmenšího prvku na vedlejší diagonále. V obrázku posílám ukázkový výpis.

//forum.matweb.cz/upload3/img/2015-10/91622_ukol.png

Nemám problém s tím matici zadat a vypsat. Dokážu si i vybrat prvky z vedlejší diagonály a z nich dokážu určit největší a nejmenší prvek. Ale nevím jak udělat to, aby se u největšího a nejmenšího prvku zobrazily souřadnice.

Dokážu si vytvořit pole, kde jsou jen prvky z vedlejší diagonály, ale když najdu maximum a minimum tak je mi to k ničemu, protože tam nemám souřadnice z původní matice. Pomohl by mi někdo s řešením?
(Přikládám současný kód)

Code:

public static void main(String[] args) {

        System.out.print("Zadej rad matice: ");
        int n = sc.nextInt();
        int[][] matice = new int[n][n];
        int[] prvky = new int[n];


        //nacte prvky do matice
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                System.out.printf("m[%d][%d]: ", i, j);
                matice[i][j] = sc.nextInt();

            }
        }

        System.out.println("Byla zadana matice:" );

        for (int i = 0; i < matice.length; i++) {
            for (int j = 0; j < matice[i].length; j++) {
                System.out.format("%3d", matice[i][j]);
            }
            System.out.println(""); //odradkovani
        }




        //nacte do pole "prvky" prvky z vedlejsi diagonaly
        for (int i = 0; i < matice.length; i++) {
            prvky[i] = matice[i][((n-2) - i) + 1];

        }

        System.out.println(Arrays.toString(prvky));


    }

Offline

  • (téma jako vyřešené označil(a) bert.blader)

#2 26. 10. 2015 21:58

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Výpis největšího prvku na vedlejší diagonále

vždyť sis ten převod sám napsal:

Code:

prvky[i] = matice[i][((n-2) - i) + 1]

Offline

 

#3 26. 10. 2015 22:15 — Editoval bert.blader (26. 10. 2015 22:16)

bert.blader
Příspěvky: 96
Škola: Západočeská univerzita v Plzni
Pozice: Student
Reputace:   
 

Re: Výpis největšího prvku na vedlejší diagonále

↑ Stýv:

Vůbec jsem nevěděl, jak mám zařídit, aby se mi někam ukládaly souřadnice největšího a  nejmenšího prvku. Nakonec jsem to vyřešil tímto způsobem a zdá se, že to funguje.

Code:

 
        int max = 0;
        int min = 0;
        int iMax = 0;
        int jMax = 0;
        int iMin = 0;
        int jMin = 0;


        for (int i = 0; i < matice.length; i++) {
                prvky[i][(n-1)-i] = matice[i][((n-2) - i) + 1];

                //max a min ulozim do prvniho nacteneho prvku
                max = prvky[0][n-1];
                min = prvky[0][n-1];

                if(prvky[i][(n-1)-i] > max){
                max = prvky[i][(n-1)-i];
                    iMax = i;
                    jMax = (n-1)-i;
                }

                
                if(prvky[i][(n-1)-i] < min){
                    min = prvky[i][(n-1)-i];
                    iMin = i;
                    jMin = (n-1)-i;
                 }

        }

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson