NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 12 - Pole v Javě

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
pocitac770
Tvůrce
Avatar
Odpovídá na Miroslav Melzer
pocitac770:2.11.2016 21:38

EDIT: blbě jsem četl, myslel jsem, že v řídícím příkazu (to za druhým středníkem) máš to i += 0.1
V tomto případě si zase uvědom, co se děje. Nejprve je tam 0, a doplníš 0 + 0.1, neboli 0.1. Následně je tam 1, a doplníš 1 + 0.1, neboli 1.1. Zde byl problém v tomto konrétním případě. Jinak pořád platí vše viz výše...

 
Odpovědět
2.11.2016 21:38
Avatar
Oskar Nový
Člen
Avatar
Odpovídá na lincerix
Oskar Nový:21.11.2016 18:48

%d se používá při celá čísla %f pro desetiná a %s pro Stringy (textové řetězce).
Printf musíš použít proto aby ti ty % fungovala.

 
Odpovědět
21.11.2016 18:48
Avatar
Ondřej Polanecký:18.12.2016 21:20

Ahoj.Můžete mi někdo prosím poradit jak napsat ten program na výpočet průměru, ale abych nemusel zadávat kolik známek zadám a sám si zjistil kolik jsem jich zadal. S programováním teprve začínám a tak jak jsem si myslel, že by to mohlo fungovat to nefunguje.

 
Odpovědět
18.12.2016 21:20
Avatar
Filip Razák
Člen
Avatar
Filip Razák:13.1.2017 12:17

Ahoj,

s programovanim zacinam, mohl by mi prosím někdo poradit jaký kod mi pomůže vypsat z pole nejvyšší a druhé nejvyšší číslo?

Díky!

 
Odpovědět
13.1.2017 12:17
Avatar
Filip Gajdos
Člen
Avatar
Filip Gajdos:4.2.2017 15:02

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package znaky;
import java.util.Arrays;

/**
*
* @author filip212
*/
public class Znaky {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

// retazec ktory chcem analyzovat
String ss = "Programátor sa zasekne v sprche, pretože inštrukcie na šampónu boli: Namydliť, umyť, opakovať.";
System.out.prin­tln(ss);
ss = ss.toLowerCase();

//Inicializacia pocitadiel
int pocetSamohlasok = 0;
int pocetSpoluhlasok = 0;

// definicia pola samohlasok a spoluhlasok
String[] samohlasky = {"a", "e", "i", "o", "u", "ä", "á", "é", "í", "ó", "ú", "ia", "ie", "iu", "ô"};
String[] spoluhlasky = {"d", "t", "n", "l", "h", "ch", "g", "h", "k", "ď", "ť", "ň", "ľ", "c", "č", "ž", "š", "dz", "ďz", "m", "b", "p", "v", "z", "s", "f", "r"};

// Hlavny cyklus
for (char c : ss.toCharArray())
{
for (int i = 0; i<15; i++)
{
if (samohlasky[i]­.contains(Strin­g.valueOf(c)))
pocetSamohlasok++;
}

for (int i = 0; i <27; i++)
{
if (spoluhlasky[i]­.contains(Strin­g.valueOf(c)))
pocetSpoluhlasok++;
}
}

//Vypis na konci
System.out.prin­tf("Pocet samohlasok = %d\n", pocetSamohlasok);
System.out.prin­tf("Pocet spoluhlasok = %d\n", pocetSpoluhlasok);
System.out.prin­tf("Pocet nepismennych znakov = %d", ss.length() - (pocetSamohlasok + pocetSpoluhlasok));
}

}

Tento kod mi normalne funguje pokial to mam v cestine vetu aj samohlasky a spoluhlasky dostavam rovnake vysledky ako v clanku pokial to ale prehodim do SVK jayzka dostavam
run:
Programátor sa zasekne v sprche, pretože inštrukcie na šampónu boli: Namydliť, umyť, opakovať.
Pocet samohlasok = 58
Pocet spoluhlasok = 53
Pocet nepismennych znakov = -17BUILD SUCCESSFUL (total time: 0 seconds)

 
Odpovědět
4.2.2017 15:02
Avatar
Filip Gajdos
Člen
Avatar
Odpovídá na Filip Gajdos
Filip Gajdos:4.2.2017 15:13

Pardon postol som do ineho clanku

 
Odpovědět
4.2.2017 15:13
Avatar
Honza B.
Člen
Avatar
Honza B.:6.3.2017 11:11

Ahoj,

mám za úkol:

naplnit pole o n-prvcích náhodnými čísly od 1-10. Poté vyhledejte číslo, které se vyskytlo nejčastěji a kolikrát se vyskytlo..

Počet prvků jsem nastavil tak, že si je zvolí uživatel, poté se pole naplní náhodnými čísly. Při snaze nalézt vhodný způsob, jak zjistit výskyt a počet výskytů onoho nejčastějšího čísla jsem se zasekl. Pole jsem si seřadil s tím, že budu vědět, jak dál, ale bohužel nevím. Můžu poprosit o radu?

import java.util.Arrays;
public class Ukol {
        public static void main (String[] args){
                int m;
                System.out.print("zadej pocet prvků pole: ");
                m = VstupDat.ctiInt();
                System.out.println();
                int[] a = naplnPole(m);
                tiskPole(a);

                System.out.println();

   Arrays.sort(a);
   System.out.println("Seřazené pole:\n");
   for (int cislo : a) {
   System.out.print(" " + cislo + " ");
   }

   System.out.println();

}

        static int[] naplnPole(int m){
                int[] x = new int[m];
                for (int i = 0; i<x.length; i++){
                                x[i] = (int)(Math.random()*10+1);
                }
                return x;
        }

        static void tiskPole(int[] x){
                for (int i = 0; i<x.length; i++){
                                System.out.printf("%3d",x[i]);
                        }
                        System.out.println();
                }
        }

Předem moc děkuju :-)

 
Odpovědět
6.3.2017 11:11
Avatar
Odpovídá na Honza B.
Neaktivní uživatel:6.3.2017 11:30

Pokud sis ho seřadil, tak stačí cyklem projít každý prvek.
Před cyklem si vytvořit své proměnné, nejcastejsi_cislo a pocet_vyskytu a favorit a pocet_noveho_fa­vorita.
Inicializovat nejcastejsi_cislo na první hodnotu seřazeného pole a pocet_vyskytu na 1.
Pak v každém průchodu cyklu zkontroluj jestli současná hodnota pole je stejná jako tvoje nejčastější číslo, pokud ano zvětši počet výskytu. Pokud ne, umísti tohle číslo do favorita a zvětši mu výskyt. Pokud při dalším průchodu zjistíš že se favorit změnil, změn favorita a vynuluj, respektive vyjedničkuj mu počet. Pokud nějaký favorit překoná nejčastější číslo, změn nejčastější číslo a změn jeho počet.

Jsem na mobilu, takže bez kódu, sry.
Ale mohl jsi použít fórum.

Editováno 6.3.2017 11:30
Odpovědět
6.3.2017 11:30
Neaktivní uživatelský účet
Avatar
Honza B.
Člen
Avatar
Odpovídá na Neaktivní uživatel
Honza B.:6.3.2017 12:16

Děkuji, zkusím to, ještě dám vědět :-) A omlouvám se, přesunu se do fóra, nedocvaklo mi to..

 
Odpovědět
6.3.2017 12:16
Avatar
Kuba
Člen
Avatar
Kuba:6.5.2017 17:23

Ahoj,

nějak si nevím rady, dávám dohromady program na výpočet mediánu, ale mám tam nějakou kravinu, sice mi to správně vypíše číselné pořadí polí ve středu, ale vypíše to nějak nesmyslně hodnoty. Může se mi na to někdo mrknout? Jde o výpočet mediánu v případě zadání sudého počtu prvků.

Děkuji!

package median;
import java.util.Scanner;
import java.util.Arrays;
public class Median{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Ahoj, zadej prvky, určím medián");
        System.out.println("Napiš počet prvků:");
        int pocet = Integer.parseInt(sc.nextLine().trim());
        int[] prvky = new int[pocet];
        System.out.println("Nyní zadej hodnoty:");
        for (int i = 0; i < pocet; i ++){
            System.out.printf("Zadej hodnotu %d. prvku:", i + 1);
            prvky[i] = Integer.parseInt(sc.nextLine().trim());
            Arrays.sort(prvky);
        }

        for (int vystup : prvky){
        }
        if (pocet % 2 == 1){        //lichý

            }
            else {                      //sudý
                int x1 = pocet/2 ;
            int x2 = (pocet/2+1);
            //zkouška
            System.out.printf("Střední pole jsou %d. a %d.\nHodnoty v polích jsou %d a %d", x1, x2, prvky[x1], prvky[x2]);

            float medianS = prvky[x1] + prvky[x2];
            medianS = medianS / 2;
            System.out.println();
            System.out.printf("Medián je: %.2f", medianS);

        }
    }
}
 
Odpovědět
6.5.2017 17:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 222.