Diskuze: vypis pole-java
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 35 zpráv z 35.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


chápu správně že máš čísla uložené v poli a ty chceš vypsat?
Řešil bych to nějak takto:
for(i=0;i<pole.size;++i){
for(j=0;j<i;++j){
if(pole[i]==pole[j]){
//už tu je, ukončení cyklu
}
}
//print
}
ano mám pole utvořené posloupností a já chci vypsat prvky pole do té
doby než se nejaky z prvku opakuje 
takto mi to právě nefunguje
mám právě vytvořené pole o hodně prvcích z určitě
posloupnosti a a chci jen to pole zmenšit a vypsat prvky pole do kterých se ty
prvky neopakují 
public static void main(String[] args) {
System.out.print("Zadej dvojciferne cislo:");
int cislo = sc.nextInt();
int [] p = new int [50];
p[0]=cislo;
for(int j = 1; j< p.length;j++){
int nasobek = cislo*cislo;
if(nasobek>=100 && nasobek <999){
int y = (int) (nasobek % 2);
int x = (nasobek - y)/10;
int c1 = x+1;
cislo=c1;
}
else if(nasobek<=9999 && nasobek > 100){
int y = (int) (nasobek % 2);
int x = (nasobek - y)/100;
int c = x+1;
cislo = c;
}
p[j]=cislo;
}
Tohle to je inicializace toho pole, že?
Spíš bych rád viděl tvůj pokus o implementaci toho zmenšení pole.
Napadlo mě nějak zastavit tu poslounost ale boj´hužel vůbec nevím jak :/
ano aby se už dále nevypisovali prvky posloupnosti když se objeví stejný
prvek
a to co vyjde dát
nějak do pole
nevím jak na
to :/ jinak jsem postupoval stejně jako vy 
asi to bude špatně ale spatlal jsem tohle.
Random hod = new Random();
int pocetCisel = 50;
int pole[] = new int[50];
for (int i = 0; i < pocetCisel; i++)
{
int cislo = hod.nextInt(3);
pole[i] = cislo;
System.out.print(cislo);
}
System.out.println();
String text = "";
for (int i = 0; i < pole.length; i++)
{
if (text.contains(String.valueOf(pole[i])))
{
}
else
{
text+=String.valueOf(pole[i]);
}
}
String vyslednepoleznaku[] = text.split(" ");
int vysledek[] = new int[vyslednepoleznaku.length];
for (int i = 0; i < vyslednepoleznaku.length; i++)
{
vysledek[i] = Integer.parseInt(vyslednepoleznaku[i]);
}
for (int i = 0; i < vysledek.length; i++)
{
System.out.println(vysledek[i]);
}
Tam ti dělá problém breaknutí dvou for-cyklů?
Pokud jo tak to se dá řešit buďto funkcí, nebo takto:
loop:
for(i=0;i<pole.length;++i){
for(j=0;j<i;++j){
if(pole[i]==pole[j]){
break loop;
}
}
}
Nasledně máš v "i" uloženo kolik prvků chceš vypsat/dát do jiného pole...
Vážím si vašich rad a Vašeho času nicméne pořád nevím tak bych to zkusil jinak ... nevíte jak bych mohl zastavit generování následující posloupnosti když se objeví prvek který už se vygeneroval? :
public static void main(String[] args) {
System.out.print("Zadej dvojciferne cislo:");
int cislo = sc.nextInt();
for (int j = 0; j < 100 ; j++) {
int nasobek = cislo*cislo;
if(nasobek>=100 && nasobek <999){
int y = (int) (nasobek % 2);
int x = (nasobek - y)/10;
int c = x+1;
cislo=c;
}
else if(nasobek<=9999 && nasobek > 100){
int y = (int) (nasobek % 2);
int x = (nasobek - y)/100;
int c = x+1;
cislo=c;
}
System.out.println(cislo);
}
děkuji 
zadani 
(tj. končí výskytem pseudonáhodného čísla, které již bylo dříve vygenerováno).
Příklad vygenerování pseudonáhodných čísel:
67 * 67 = 4489 -> 44 + 1 = 45
45 * 45 = 2025 -> 20 + 1 = 21
21 * 21 = 441 -> 44 + 1 = 45 -- tato hodnota se již v posloupnosti vyskytla,
generování končí
Posloupnost pseudonáhodných čísel začínající startovací hodnotou 67 je
tedy 67, 45, 21
Prakticky to samé:
int []pole = new int[100];
loop:
for(j=0;j<100;++j){
//generování...
pole[j]=cislo;
for(i=0;i<j;++i){
if(pole[i]==pole[j]){
break loop;
}
}
}
Ja fakt neviem, ci som ti porozumel, ale skus toto
public static void main(String[] args) {
// TODO code application logic here
int[] pole = { 1, 3, 4, 5, 1, 1, 3, 4, 5 };
v:
for(int i = 0; i < pole.length; i++) {
for(int j = 0; j < i; j++)
if(pole[i] == pole[j])
continue v;
System.out.print(pole[i] + " ");
}
}
Alebo podla toho zadania, ak chces zastavit ten loop, tak proste pouzi break, v com je problem?
to je spravne
jak to vypisu
v poli? tj. [1, 2, 3]
nebo by to šlo, tak že si vygenerovaná čísla nastrkáš do proměnné a pak při každém cyklu kontroluješ zda už v ní to číslo je
Neviem, co mas na mysli.. Chces "vyhovujuce" cisla ulozit do pola a to nasledne vypisat?
jak tedy vypíšu ta čísla v poli? [1, 2, 3,]?
Nakolko dlzka pola, ktore by si siel vytvorit nie je znama, tak siel by som
do ArrayListu
-> http://www.itnetwork.cz/…zani-polozek
Nie som teraz k dispozicii, tak si to nastuduj a urob to sam. Je to tipujem
domaca uloha, ta by stratila to caro, ak by sme ti ju urobili my 
Ako pomocku ti mozem povedat len to, ze budes potrebovat cyklus for, ktorym budes pole naplnat. Skus sa s tym pohrat a urcite na to prides sam !
díky nějak to zkusím 
ArrayList<Integer> posloupnost = new ArrayList<Integer>();
System.out.print("Zadej dvojciferne cislo:");
int cislo = sc.nextInt();
do{
int nasobek = cislo*cislo;
int y = (int) (nasobek % 2);
int x = (nasobek - y)/10;
int c = x+1;
cislo=c;
if (!posloupnost.contains(cislo))
posloupnost.add(cislo);
else break;
}while(true);
Pro výpis kolekce použiješ
for(int i=0;i<posloupnost.size();i++)
System.out.println("["+posloupnost.get(i)+";]");
Tady je celý kód můžeš to zkusit, psal jsem to jenom tak z hlavy, jelikož nemám žádný kompilátor na javu u sebe momentálně.
import java.util.Scanner;
import java.util.ArrayList;
public class HelloWorld{
public static void main(String []args){
Scanner sc = new Scanner(System.in, "Windows-1250");
ArrayList<Integer> posloupnost = new ArrayList<Integer>();
System.out.print("Zadej dvojciferne cislo:");
int cislo = sc.nextInt();
do{
int nasobek = cislo*cislo;
int y = (int) (nasobek % 2);
int x = (nasobek - y)/10;
cislo = x+1;
if (!posloupnost.contains(cislo))
posloupnost.add(cislo);
else break;
}while(true);
System.out.print("[");
for(int i=0;i<posloupnost.size();i++)
System.out.print(posloupnost.get(i)+";");
System.out.print("]");
}
}
Toto by mělo být to co jsi popisoval můžeš vyzkoušet 
import java.util.Scanner;
import java.util.ArrayList;
public class HelloWorld{
public static void main(String []args){
Scanner sc = new Scanner(System.in, "Windows-1250");
ArrayList<Integer> posloupnost = new ArrayList<Integer>();
System.out.print("Zadej dvojciferne cislo:");
int cislo = sc.nextInt();
do{
int nasobek = cislo*cislo;
double length = Math.pow(10,(String.valueOf(nasobek).length()-2)); //zjisti pocet cifer nasobku a odecte dve cifry a tim umocni desitku
int y = (int) (nasobek % 2);
double x = (nasobek - y)/length;
cislo = (int)(x+1);
if (!posloupnost.contains(cislo))
posloupnost.add(cislo);
else break;
}while(true);
System.out.print("[");
for(int i=0;i<posloupnost.size();i++)
System.out.print(posloupnost.get(i)+";");
System.out.print("]\n Nasledovalo cislo, ktere je jiz obsazeno: "+cislo);
}
}
Moje verze, vynechal jsem test, zda uživatel nezadává nějaký nesmysl místo dvojciferného čísla.
List<Integer> numbers = new ArrayList<>();
Scanner in = new Scanner(System.in);
int number;
System.out.print("Zadej dvouciferné číslo: ");
number = in.nextInt();
System.out.println("Pridavam: " + number);
numbers.add(number); //pridame uzivatelem zadane cislo
do {
number *= number; //na druhou
number = Integer.parseInt(Integer.toString(number).substring(0, 2)); //prvni dve cifry
number += 1; //plus 1
if (numbers.contains(number)) { //pokud uz cislo je v kolekci tak konec
System.out.println("Nalezeno jiz pridane cislo - " + number + ", koncim.");
break;
} else { //pokud neni tak ho pridame
System.out.println("Pridavam: " + number);
numbers.add(number);
}
} while (true);
Děkuji Vám
problém
vyřešen
bohužel je to jen
část mé práce 
Zobrazeno 35 zpráv z 35.