Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Abi javaga programmeerimises märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
kp0041e
HV vaatleja

liitunud: 19.11.2012




sõnum 02.02.2013 16:49:07 Abi javaga programmeerimises vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 02.02.2013 17:22:10 vasta tsitaadiga

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:
  1.  
  2. import java.util.*;
  3. import java.io.*;
  4.  
  5.  
  6. /*
  7.  
  8. Programm kysib kasutajalt arvu N ( 1< N >100 ),
  9. siis genereerib jada N elementidest, kus iga element on juhuslik arv
  10. vahemikus 0 kuni 1 000 000.
  11.  
  12. Väljastada kujul "" jada[0], jada[1], jada[2], ..... jada[N].""
  13.  
  14. Siis kasutab sortimisalgoritmi bubble sort, mis paneb arvud kasvavasse
  15. j2rjekorda ja siis n2idata see jada sellel kujul.
  16.  
  17. */
  18.  
  19. public class jada {
  20.  
  21.         public static void main(String args[]) {
  22.                
  23.                 int[ ] aryNums;
  24.  
  25.         // K6sin kasutajalt arvu N, ehk jada pikkuse.
  26.                
  27.                 Scanner klaviatuur = new Scanner(System.in);
  28.                 System.out.println("Palun sisestage javda pikkus (1 kuni 100 elementi):");
  29.                 int N = klaviatuur.nextInt();
  30.                
  31.                
  32.                 // genereerin jada suvaliste numbritega.
  33.                
  34.                 int korrad = 1;
  35.                
  36.                 System.out.print("Jada suvalises järjekorras on: ");
  37.                
  38.                 while (korrad <= N) {
  39.                        
  40.                         int random = (int) (Math.random() * 1000000);
  41.                        
  42.                         aryNums[korrad] = random;
  43.                         System.out.print(random + ", ");
  44.                        
  45.                        
  46.                         korrad = korrad + 1;
  47.                 }
  48.         }
  49.        
  50. }
  51.  

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kp0041e
HV vaatleja

liitunud: 19.11.2012




sõnum 02.02.2013 17:57:31 vasta tsitaadiga

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:
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4.  
  5. /*
  6.  
  7. Programm kysib kasutajalt arvu N ( 1< N >100 ),
  8. siis genereerib jada N elementidest, kus iga element on juhuslik arv
  9. vahemikus 0 kuni 1 000 000.
  10.  
  11. Väljastada kujul "" jada[0], jada[1], jada[2], ..... jada[N].""
  12.  
  13. Siis kasutab sortimisalgoritmi bubble sort, mis paneb arvud kasvavasse
  14. j2rjekorda ja siis n2idata see jada sellel kujul.
  15.  
  16. */
  17.  
  18. public class jada {
  19.  
  20.         public static void main(String args[]) {
  21.                
  22.        
  23.                
  24.         // K6sin kasutajalt arvu N, ehk jada pikkuse.
  25.                
  26.                 Scanner klaviatuur = new Scanner(System.in);
  27.                 System.out.println("Palun sisestage javda pikkus (1 kuni 100 elementi):");
  28.                 int N = klaviatuur.nextInt();
  29.                 int[] element = new int[N];
  30.                
  31.                 // genereerin jada suvaliste numbritega.
  32.                
  33.                 int korrad = 1;
  34.                
  35.                 int number = 0;
  36.                
  37.                 System.out.print("Jada suvalises järjekorras on: ");
  38.                
  39.                 while (korrad <= N) {
  40.                        
  41.                         int random = (int) (Math.random() * 1000000);
  42.                        
  43.                        
  44.                        
  45.                         System.out.print(random + ", ");
  46.                        
  47.                         element [number] =  random;
  48.                         number = number + 1;
  49.                         korrad = korrad + 1;
  50.                 }
  51.        
  52.        
  53.                 int korrad2 = 1;
  54.                 int number2 = 0;
  55.                
  56.                 // See prindib välja array osad.
  57.                 while (korrad2 <= N) {
  58.                        
  59.                         System.out.print("\n\n" + element[number2] + ", ");
  60.                        
  61.                         number2 = number2 + 1;
  62.                         korrad2 = korrad2 + 1;
  63.                 }
  64.        
  65.        
  66.        
  67.        
  68.        
  69.        
  70.        
  71.        
  72.        
  73.        
  74.        
  75.        
  76.        
  77.        
  78.        
  79.        
  80.        
  81.        
  82.        
  83.        
  84.         }
  85.        
  86. }
  87.  
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 02.02.2013 18:52:32 vasta tsitaadiga

Foreach võib ka ehk kasuks olla sulle, uuri selle kohta.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 03.02.2013 15:04:02 vasta tsitaadiga

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:
  1. import java.util.Scanner;
  2.  
  3. // Fukiku:  Heaks tavaks on Javas * importe mitte kasutada, vaid iga kasutatav
  4. //          klass eraldi importida. Lihtsamaks teeb selle mingi mõistliku IDE
  5. //          kasutamine a'la Eclipse, NetBeans, IntelliJ IDEA, mis pakuvad
  6. //          võimalusi import automaatselt majandada, käsitsi notepadis võib
  7. //          tõesti keeruline olla hallata neid.
  8.  
  9. /*
  10. *
  11. * Programm kysib kasutajalt arvu N ( 1< N >100 ), siis genereerib jada N
  12. * elementidest, kus iga element on juhuslik arv vahemikus 0 kuni 1 000 000.
  13. *
  14. * Väljastada kujul "" jada[0], jada[1], jada[2], ..... jada[N].""
  15. *
  16. * Siis kasutab sortimisalgoritmi bubble sort, mis paneb arvud kasvavasse
  17. * j2rjekorda ja siis n2idata see jada sellel kujul.
  18. *
  19. */
  20. //Fukiku:   Heaks tavaks on Javas klassinimesid alustada suurtähega,
  21. //          vt ka Oracle Java naming conventions
  22. public class Jada {
  23.  
  24.     public static void main(String args[]) {
  25.  
  26.         // K6sin kasutajalt arvu N, ehk jada pikkuse.
  27.  
  28.         Scanner klaviatuur = new Scanner(System.in);
  29.         System.out.println("Palun sisestage javda pikkus (1 kuni 100 elementi):");
  30.         int N = klaviatuur.nextInt();
  31.         int[] element = new int[N];
  32.  
  33.         // genereerin jada suvaliste numbritega.
  34.  
  35.         System.out.print("Jada suvalises järjekorras on: ");
  36.  
  37.         // Fukiku:  Siin ei oleks vaja kaht erinevat muutjat luua, samuti ei
  38.         //          ole see mõistlik koht while tsükliga tegemiseks. Mõistlikum
  39.         //          on siin for tsüklit kasutada ning saab hakkama ühe tsükli-
  40.         //          muutujaga.
  41.         //
  42.         //          For-tsüklis hakkame muutjat i lugema alates nullist ning
  43.         //          jätkame tsüklit kuni i on väiksem kui N. See tähendab, et
  44.         //          i omandab kõik väärtused vahemikus 0 kuni N-1 ehk kokku N
  45.         //          erinevat väärtust ehk tsüklit täidetakse N korda nagu vaja.
  46.         //          Lisaboonusena, kuna loeme i-d alates nullist, saame i-d otse
  47.         //          kasutada massiivi indeksina.
  48.         for(int i = 0; i < N; i++) {
  49.             int random = (int) (Math.random() * 1000000);
  50.             System.out.print(random + ", ");
  51.             element[i] = random;
  52.         }
  53.  
  54.         // Fukiku:  Siin sama jutt, while tsükkel ei ole hea lihtsalt selliseks
  55.         //          tsükli väljastamiseks konsoolile, standardlahendus ja mugavam
  56.         //          on for. Siinkohal, kuna vaja on vaid väljastada, on võimalik
  57.         //          kasutada ka Java foreach konstruktsiooni. Samas võib
  58.         //          kasutada ka eelmises tsüklis näidatud konstruktsiooni
  59.         //          muutujaga i.
  60.  
  61.         // See prindib välja array osad.
  62.        
  63.         // Fukiku:  See konstruktsioon tähendab, et võta järjest massiivist
  64.         //          nimega element kõik elemendid ja luba mul seda kasutada
  65.         //          muutujana e. Ehk siis sisuliselt e omandab järgemööda kõigi
  66.         //          massiivi elementide väärtused ning tsükkel kestab
  67.         //          automaatselt nii kaua kuni massiivis elemente jätkub.
  68.         for(int e : element) {
  69.             // Fukiku:  print käskudes pole vajadust ise \n konstruktsiooniga
  70.             //          reavahetusi esile kutsuda, selleks on olemas käsk
  71.             //          println, mis automaatselt trükitavale reavahetuse lõppu
  72.             //          lisab, println ilma argumentideta tekitab lithsalt
  73.             //          reavahetuse.
  74.             System.out.println();
  75.             System.out.println(e + ",");
  76.         }
  77.  
  78.     }
  79. }


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
vaata kasutaja infot saada privaatsõnum
kp0041e
HV vaatleja

liitunud: 19.11.2012




sõnum 03.02.2013 16:46:40 vasta tsitaadiga

Tänud vastuse eest!

Praeguseks on mul kood valmis ja töötab..., aga vajab formateerimist ma arvan.


java:
  1. import java.util.Scanner;
  2.  
  3.  
  4. /*
  5.  
  6. Programm kysib kasutajalt arvu N ( 1< N >100 ),
  7. siis genereerib jada N elementidest, kus iga element on juhuslik arv
  8. vahemikus 0 kuni 1 000 000.
  9.  
  10. Väljastada kujul "" jada[0], jada[1], jada[2], ..... jada[N].""
  11.  
  12. Siis kasutab sortimisalgoritmi bubble sort, mis paneb arvud kasvavasse
  13. j2rjekorda ja siis n2idata see jada sellel kujul.
  14.  
  15. */
  16.  
  17.  
  18. public class Jada {
  19.  
  20.         public static void main(String args[]) {
  21.                
  22.        
  23.                
  24.         // K6sin kasutajalt arvu N, ehk jada pikkuse.
  25.                
  26.                 Scanner klaviatuur = new Scanner(System.in);
  27.                 System.out.println("Palun sisestage javda pikkus (1 kuni 100 elementi):");
  28.                 int N = klaviatuur.nextInt();
  29.                 int[] element = new int[N];
  30.                
  31.                 // genereerin jada suvaliste numbritega.
  32.                
  33.                
  34.                 System.out.println("\nJuhuslik jada: ");
  35.                
  36.                
  37.                
  38.                
  39.                
  40.                 for (int i = 0 ; i < N ; i++)  {
  41.                        
  42.                         int random = (int) (Math.random() * 1000000);
  43.                         System.out.print(random + ", ");
  44.                         element[i] = random;
  45.                        
  46.                 }
  47.                
  48.                
  49.        
  50.                 SortEm (element);
  51.                
  52.        
  53.         }              
  54.        
  55.  
  56.        
  57.         private static void SortEm      (int[] ar)  {
  58.                
  59.                
  60.                
  61.                
  62.                 int temp;
  63.                 for (int x = ar.length - 1 ; x > 0 ; x--)   {
  64.                         for (int y = 0 ; y < x ; y++) {
  65.                                 if (ar[y] > ar[y + 1]) {
  66.                                         temp = ar[y];
  67.                                         ar[y] = ar[y + 1];
  68.                                         ar[y + 1] = temp;
  69.                                 }
  70.                         }
  71.                 }
  72.                
  73.                
  74.                
  75.                
  76.                 System.out.println("\n\nJärjestatud jada: ");
  77.                 for (int i = 0; i < ar.length ; i++) {
  78.                         System.out.print(ar[i] + ", ");
  79.                 }
  80.                 System.out.println();
  81.                
  82.        
  83.         }
  84.        
  85. }
  86.  
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Abi javaga programmeerimises
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
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.