» »

[Java] programiranje "praštevila"

[Java] programiranje "praštevila"

gape0000 ::

no cilj je da nardim program ki mi bo izpisu praštevila od nekih mej, ki jih jst lahko določm
jst sm izbrou od 10 do 30npr. no in razen tega da mi jih izpiše mi more tut vsoto zračunat(praštevil med 10 in 30 v mojmu primeru).

in jst neki ne delam prou :(

no tole sm napisu pa mi k hočem prevedt (javac Prast.java)
tale error jav :
Prast.java:24: variable jePrast might not have been initialized
if(jePrast==true)
^
tole je pa kar sm napisu
public class Prast
{
  public static void main(String[] args)
  {
    System.out.println("Prastevila");
    
    boolean jePrast;
    short spMeja=10;
    short zgMeja=30;
    short i;
    short j;
    short sum=0;
    
    for(i=spMeja; i < = zgMeja; i+=2) 
    jePrast=true;
      { 
        for(j=2; j < = i/2; j++)
          {
          if(i%j==0)
	    jePrast=false;
          break;
          }
      }     
    if(jePrast==true)
    {
     System.out.println(" "+i);
     sum+=i;
    }
  }

in tuki se mi je zataknl pa sm pa totaln beginer glede programiranja tko da če bi mi lahko kdo pomagu bi blo lepo :)
aja pa kako še napišem da mi izpiše vsoto a je tkole prou:

System.out.println("vsota je " +sum);

Hvala!
  • spremenil: kopernik ()

kopernik ::

Sem ti samo malo popravil naslov in kodo ...

Napako pa odpraviš tako, da na začetku napišeš:
boolean jePrast = false;

gape0000 ::

Ja ej hvala!
to mi je rešl da mi ne javla več errorja samo jst bi rabu da mi izpiše ta praštevila od 10 do 30 sam to mi jih pa ne
napisu sm tko k si reku na začetku

boolean jePrast=false; //zakaj pa je treba dt tuki "false" vrednost?

pa še na koncu sm dau da mi izpiše vsoto

System.out.println("Vsota je " +sum);
to mi dela sam izpiše da je vsota nič pa ne vem a zato k itak ni izpisu nobenih praštevil al je neki narobe tko u programčku?

blaz_ ::

Zivjo

lej napako imas v for stavku, ko pristejes +2(to da pristejes je ze pravilno in tudi hitreje), samo ti ne preveris nikjer kaksno je zacetno stevilo, v tvojem primeru je to spMeja in je to sodo stevilo.

Ce das pred for stavek se

if(spMeja%2==0)
spMeja--; //lahko bi v bistvu tudi ++, samo tako bi morda prvo prastevilo preskocil(v for stavku)

ti imas tudi stavek za izpisovanje
izven prvega for stavka, zato izpise samo zadnje stevilo

tukaj je malce spremenjena tvoja koda(delujoca)
public class Prast
{
  public static void main(String[] args){
   System.out.println("Prastevila");
    
    boolean jePrast;
    short spMeja=10;
    short zgMeja=30;
    short i;
    short j;
    short sum=0;
    
    if(spMeja%2==0)
    	spMeja--;
    for(i=spMeja; i <= zgMeja; i+=2){ 
	jePrast=true;
        for(j=2; j < = i/2; j++){
          if(i%j==0)
	    jePrast=false;
      //    break;
        }
    
	if(jePrast==true){
   	    System.out.println(" "+i);
    	    sum+=i;
    	}
    }     

  }
}



se namig: za vecja prastevila obstaja formula y=x^2+x+41 samo ni 100 procentna tako, da je tudi to prastevilo potrebno preveriti

lp blaz
Ko tehnologija odpove, uporabi macolo.

Zgodovina sprememb…

  • spremenil: kopernik ()

gape0000 ::

ej hvala blaz res!
zdej mi dela ja tko k sm hotu zdej ma pa sam zanima tole

jst sm dau na koncu tkole:

System.out.println(" "+i);
sum+=i;
System.out.println("vsota je " +sum);

in k to nardim mi tkole napiše:
Prastevila
11
vsota je 11
13
vsota je 24
17
vsota je 41
19
vsota je 60
29
vsota je 112

in kako bi jst naredu da bi meu vsoto sam ta zadno, da bi mi napisal sam vsota 112 pa nč unih umesnih vsot?
sej drugač je tut tko u redu sam tko informativno me zanima :\

blaz_ ::

Zivjo

Lej ti imas to kjer izpisuje stevila v prvem for stavku.

Zakaj pa ne poiskusis narediti tako, da bi znotraj for stavka samo sesteval, na koncu pa rezultat se prikazal?

just hint;)

PS:Predlagam ti da poiskusis z rocnim sledenjem programa, to pomeni da na list papirja napises vse spremenljivke v stolpcih in se kaj se izpisuje na zaslon in potem gres po korakih skozi program in izpisujes kaksne vrednosti imajo spremenljivke(zelo koristno za razumevanje programa samega).

lp blaz
Ko tehnologija odpove, uporabi macolo.

gape0000 ::

joj ej sm probavu pa ne znam ;( ,zmešal se mi bo
kako nardim u 1. "for" samo da bo sešteval rezultat pa da bo na koncu izipsal
blaz - kako si mislu da mam 1. "for" to kjer izpisuje števila?

dej pomagite pliz men ni nč več jasn

blaz_ ::

Hi

Lej znotraj for stavka pomeni znotraj tistega, kar for stavek vsebuje. V tem primeru se za for stavkom nahaja begin-{ in end-}, to kar je znotraj tedveh {} se vse ponavlja tolikokrat kolikokrat se for izvrsi.

primer for(int i=0; i< 100; i++){
System.out.println("Izpisujem stevila do 100:"+i);
System.out.println("Na tablo moram stokrat napisati: Ne bom vec metal avionckov po razredu.");
}
(v tem primeru se bosta obe besedili izpisali 100x na zaslon)

Ce za for stavkom ne bi imel { in bi to zgledalo takole:
for(int i=0; i< 100; i++)
System.out.println("Izpisujem stevila do 100:"+i);
System.out.println("Na tablo moram stokrat napisati: Ne bom vec metal avionckov po razredu.");

(Tukaj ni nic doloceno kaj naj for stavek izvrsi, kar po defaultu pomeni da se izvrsi prvi naslednji stavek. Tukaj bi torej izpisal stokrat prvi stavek System.out stavek(izpisal bi stevila od 1 do 100.))

Bi znal definirati(razloziti), kaj naredi naslednje zaporedje stavkov?
int sum=0;
for(int i=0; i< 100; i++){
System.out.println(" "+i);
sum+=i;
System.out.println("vsota je " +sum);
}

Ce znas to definirati in naresti tako, da ta naloga izpise vsoto, znas tudi nalogo s prastevili resiti.

PS:ce bos imel se vedno tezave se ponovno oglasi

lp blaz
Ko tehnologija odpove, uporabi macolo.

Zgodovina sprememb…

  • spremenil: blaz_ ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

python-rabim pomoč

Oddelek: Programiranje
162668 (898) rnla1973
»

Java

Oddelek: Programiranje
335513 (4114) Spura
»

Python - problem

Oddelek: Programiranje
132705 (2435) slevin
»

Java problemček

Oddelek: Programiranje
51377 (1299) pajac
»

Svetujte mi en spodoben editor za programiranje!

Oddelek: Programiranje
161722 (1362) mainman

Več podobnih tem