praegune kellaaeg 23.06.2025 07:57:57
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
kp0041e
HV vaatleja
liitunud: 19.11.2012
|
02.02.2013 16:49:07
Abi javaga programmeerimises |
|
|
Tervist,
Mul tekkis programmi kirjutamises väikene tõrge. Nimelt äkki keegi targem oskaks aidata sellega, kuidas while loop'is genereeritud numbrid array'ks teha.
Pole kindel, kas array'ks tegemine on vajalik, seega on oodatud ka muud soovitused.
Programmist siis natuke... Programm genereerib sisestuse järgi ( 1 < sisestus > 100 ) teatud arv suvalisi numbreid vahemikus 0 kuni 1 000 000. Näitab seda jada kasutajale ja
sortib bubble sort algoritmi järgi jada kasvavasse järjekorda ning näitab seda uuesti kasutajale, aga korrastatud järjekorras.
Praegune kood mul siis niikaugel: http://paste2.org/p/2820495
|
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
02.02.2013 17:22:10
|
|
|
Niimoodi järsku?
Ma ei ole elus midagi Javas kirjutanud nii, et võibolla asi päris nii ei toimi kuid teoorias vähemalt võiks asi nii käia. Teoorias võiks saada ka ilma keyta arraysse numbreid juurde pookida ...
java:
|
import java.util.*; import java.io.*; /* Programm kysib kasutajalt arvu N ( 1< N >100 ), siis genereerib jada N elementidest, kus iga element on juhuslik arv vahemikus 0 kuni 1 000 000. Väljastada kujul "" jada[0], jada[1], jada[2], ..... jada[N]."" Siis kasutab sortimisalgoritmi bubble sort, mis paneb arvud kasvavasse j2rjekorda ja siis n2idata see jada sellel kujul. */ public class jada { public static void main (String args []) { int[ ] aryNums; // K6sin kasutajalt arvu N, ehk jada pikkuse. Scanner klaviatuur = new Scanner (System. in); System. out. println("Palun sisestage javda pikkus (1 kuni 100 elementi):"); int N = klaviatuur.nextInt(); // genereerin jada suvaliste numbritega. int korrad = 1; System. out. print("Jada suvalises järjekorras on: "); while (korrad <= N) { int random = (int) (Math. random() * 1000000); aryNums[korrad] = random; System. out. print(random + ", "); korrad = korrad + 1; } } }
|
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
kp0041e
HV vaatleja
liitunud: 19.11.2012
|
02.02.2013 17:57:31
|
|
|
Tänud vastuse eest. Ma arvan, et ma sain asjale pihta.... keegi kogenum võiks üle vaadata ja oma arvamuse anda. Praegu ta salvestab random saadud numbrid ja prindib nad kontrollimiseks üksteise alla.
java:
|
import java.util.*; import java.io.*; /* Programm kysib kasutajalt arvu N ( 1< N >100 ), siis genereerib jada N elementidest, kus iga element on juhuslik arv vahemikus 0 kuni 1 000 000. Väljastada kujul "" jada[0], jada[1], jada[2], ..... jada[N]."" Siis kasutab sortimisalgoritmi bubble sort, mis paneb arvud kasvavasse j2rjekorda ja siis n2idata see jada sellel kujul. */ public class jada { public static void main (String args []) { // K6sin kasutajalt arvu N, ehk jada pikkuse. Scanner klaviatuur = new Scanner (System. in); System. out. println("Palun sisestage javda pikkus (1 kuni 100 elementi):"); int N = klaviatuur.nextInt(); int[] element = new int[N]; // genereerin jada suvaliste numbritega. int korrad = 1; int number = 0; System. out. print("Jada suvalises järjekorras on: "); while (korrad <= N) { int random = (int) (Math. random() * 1000000); System. out. print(random + ", "); element [number] = random; number = number + 1; korrad = korrad + 1; } int korrad2 = 1; int number2 = 0; // See prindib välja array osad. while (korrad2 <= N) { System. out. print("\n\n" + element [number2 ] + ", "); number2 = number2 + 1; korrad2 = korrad2 + 1; } } }
|
|
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
02.02.2013 18:52:32
|
|
|
Foreach võib ka ehk kasuks olla sulle, uuri selle kohta.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
03.02.2013 15:04:02
|
|
|
kp0041e, kirjutasin su koodi ümber nii, nagu seda on mõistlik ja klassikaline Javas kirjutada ning lisasin põhjalikud kommentaarid koos oma nimega. Kui küsimusi tekib, siis tulista. Lisaks, kas while tsükli kasutamine on nõutav? Kui jah, siis usun, et mõeldud on selle kasutamist mullisordi juures, kuna seal tõesti teisiti ei saa. Senises koodis on see pigem tülikas nagu näed ka minu ümber kirjutatud koodist.
java:
|
import java.util.Scanner; // Fukiku: Heaks tavaks on Javas * importe mitte kasutada, vaid iga kasutatav // klass eraldi importida. Lihtsamaks teeb selle mingi mõistliku IDE // kasutamine a'la Eclipse, NetBeans, IntelliJ IDEA, mis pakuvad // võimalusi import automaatselt majandada, käsitsi notepadis võib // tõesti keeruline olla hallata neid. /* * * Programm kysib kasutajalt arvu N ( 1< N >100 ), siis genereerib jada N * elementidest, kus iga element on juhuslik arv vahemikus 0 kuni 1 000 000. * * Väljastada kujul "" jada[0], jada[1], jada[2], ..... jada[N]."" * * Siis kasutab sortimisalgoritmi bubble sort, mis paneb arvud kasvavasse * j2rjekorda ja siis n2idata see jada sellel kujul. * */ //Fukiku: Heaks tavaks on Javas klassinimesid alustada suurtähega, // vt ka Oracle Java naming conventions public class Jada { public static void main (String args []) { // K6sin kasutajalt arvu N, ehk jada pikkuse. Scanner klaviatuur = new Scanner (System. in); System. out. println("Palun sisestage javda pikkus (1 kuni 100 elementi):"); int N = klaviatuur.nextInt(); int[] element = new int[N]; // genereerin jada suvaliste numbritega. System. out. print("Jada suvalises järjekorras on: "); // Fukiku: Siin ei oleks vaja kaht erinevat muutjat luua, samuti ei // ole see mõistlik koht while tsükliga tegemiseks. Mõistlikum // on siin for tsüklit kasutada ning saab hakkama ühe tsükli- // muutujaga. // // For-tsüklis hakkame muutjat i lugema alates nullist ning // jätkame tsüklit kuni i on väiksem kui N. See tähendab, et // i omandab kõik väärtused vahemikus 0 kuni N-1 ehk kokku N // erinevat väärtust ehk tsüklit täidetakse N korda nagu vaja. // Lisaboonusena, kuna loeme i-d alates nullist, saame i-d otse // kasutada massiivi indeksina. for(int i = 0; i < N; i++) { int random = (int) (Math. random() * 1000000); System. out. print(random + ", "); element[i] = random; } // Fukiku: Siin sama jutt, while tsükkel ei ole hea lihtsalt selliseks // tsükli väljastamiseks konsoolile, standardlahendus ja mugavam // on for. Siinkohal, kuna vaja on vaid väljastada, on võimalik // kasutada ka Java foreach konstruktsiooni. Samas võib // kasutada ka eelmises tsüklis näidatud konstruktsiooni // muutujaga i. // See prindib välja array osad. // Fukiku: See konstruktsioon tähendab, et võta järjest massiivist // nimega element kõik elemendid ja luba mul seda kasutada // muutujana e. Ehk siis sisuliselt e omandab järgemööda kõigi // massiivi elementide väärtused ning tsükkel kestab // automaatselt nii kaua kuni massiivis elemente jätkub. for(int e : element) { // Fukiku: print käskudes pole vajadust ise \n konstruktsiooniga // reavahetusi esile kutsuda, selleks on olemas käsk // println, mis automaatselt trükitavale reavahetuse lõppu // lisab, println ilma argumentideta tekitab lithsalt // reavahetuse. } } }
|
Renka, Javas array'desse ilma indeksita asju lisada ei saa, samuti on array'd peale loomist fikseeritud suurusega. Selleks on muud vahendid, mis hetkel ilmselt teemaalgataja ampluaast väljapoole jäävad (java.util.List ja sõbrad).
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
kp0041e
HV vaatleja
liitunud: 19.11.2012
|
03.02.2013 16:46:40
|
|
|
Tänud vastuse eest!
Praeguseks on mul kood valmis ja töötab..., aga vajab formateerimist ma arvan.
java:
|
import java.util.Scanner; /* Programm kysib kasutajalt arvu N ( 1< N >100 ), siis genereerib jada N elementidest, kus iga element on juhuslik arv vahemikus 0 kuni 1 000 000. Väljastada kujul "" jada[0], jada[1], jada[2], ..... jada[N]."" Siis kasutab sortimisalgoritmi bubble sort, mis paneb arvud kasvavasse j2rjekorda ja siis n2idata see jada sellel kujul. */ public class Jada { public static void main (String args []) { // K6sin kasutajalt arvu N, ehk jada pikkuse. Scanner klaviatuur = new Scanner (System. in); System. out. println("Palun sisestage javda pikkus (1 kuni 100 elementi):"); int N = klaviatuur.nextInt(); int[] element = new int[N]; // genereerin jada suvaliste numbritega. System. out. println("\nJuhuslik jada: "); for (int i = 0 ; i < N ; i++) { int random = (int) (Math. random() * 1000000); System. out. print(random + ", "); element[i] = random; } SortEm (element); } private static void SortEm (int[] ar) { int temp; for (int x = ar.length - 1 ; x > 0 ; x--) { for (int y = 0 ; y < x ; y++) { if (ar[y] > ar[y + 1]) { temp = ar[y]; ar[y] = ar[y + 1]; ar[y + 1] = temp; } } } System. out. println("\n\nJärjestatud jada: "); for (int i = 0; i < ar.length ; i++) { System. out. print(ar [i ] + ", "); } } }
|
|
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|