Cikli While – Te programojm ne Java

Cikli While eshte nje pjese e thjeshte e programimit ne pergjithesi, eshte gjeresisht e perdorur dhe mund te perfitojm shume nga perdorimi i tij. Mund te kisha marre shume shembuj per ta ilustruar por zgjodha shumezimin faktorial ne menyre qe te kuptohet me ne gjeresi.

import java.util.Scanner;    //Importojm klasen skaner pasi do marrim impute nga tastiera
public class Faktorial
{
public static void main (String [ ]args)
{
Scanner inPuti = new Scanner (System.in); //krijojm objektin inPuti
long N, fakt = 1; //Percaktojm 2 variabila 1 long N dhe tjetren 1 per faktorialin
System.out.println ("Fut nje numer :");
N = inPuti.nextLong();
if (N >= 0 && N < 20)
  {
	while (N > 1)  //Perderisa Numri > 1 vazhdo

  {
		fakt = fakt * N;  // 1 = 1 * Numrin
        N = N - 1;        //Numri = Numri - 1
  }  //Numri = Numrin - 1
  System.out.println ("Faktoriali eshte :" + fakt); //Printojm faktorialin e numrit.
  }
 else
          {
          System.out.println ("Numri duhet te jete 0 ose me i madh.");
          System.out.println ("SHENIM: Per numra me te medhenj se 20 perfundimi do jete i gabuar sepse variabila i tejkalon bitet qe mund te mbaj" +
           "dhe automatikisht bitet teper i kalon ne kosh, dhe si problem eshte i njohur me \"Overflow\" ne boten e informatikes");
           }
}
}

Bukur mbasi i hodhem nje sy ushtrimit shpjegojm se ç’fare ndodhi.

Shembull, po kryejm te gjitha operacionet qe do bej cikli yne while nese merr numrin 4 nga perdoruesi:
Fut nje numer: 4, ky numer shkon dhe depozitohet ne variabilen N
if kontrollon nese nje statement eshte i vertete, dhe meqenese 4 >= 0 dhe me i vogel
se 20 atehere e fut ne cikel while i cili nderkohe qe sheh se 4 > 1:
fakt = fakt * N                                        ==> 1 = 1 * 4                           ==> fakt = 4
N = N – 1                                                  ==> N = 4 – 1                          ==> N = 3
while ( N > 1 ) ==> 3 > 1
fakt = fakt * N                                         ==> 4 = 4 * 3                          ==> fakt = 12
N = N – 1                                                   ==> 3 = 3 – 1                          ==> N = 2
while ( N > 1 ) ==> 2 > 1
fakt = fakt * N                                         ==> 12 = 12 * 2                      ==> fakt = 24
N = N – 1                                                   ==> 2 = 2 – 1                           ==> N = 1
while ( N > 1 ) ==> Tani N = 1 dhe 1 nuk eshte me i madh se 1 keshtu qe cikli mbyllet
nderkohe qe variabila fakt ka vleren 24 ndersa variabila N ka vleren 1
Besoj se eshte e qarte, pra Cikli While ka kete forme, “nderkohe qe : kushti : veprime”

Ne kete ushtrim vihet re dhe nje overflow nese fusim numra me te medhenj se 20 , do te ishte interesante ta trajtonim dhe ne nivelin e sigurise kete problem te njohur por shpresojm se ne raste te tjera do te jete diskutim me i pershtatshem

Nje sfide e vogel per programatore java – Ushtrim java

Pershendetje,

Kesaj radhe do te shohim nje teme e cila stimulon logjiken e programimit sepse duke vendosur limite atehere programatori detyrohet qe te bej nje hap perpara (cilesie) dhe detyrohet ne te njejtin moment ne koncept me te mire te algoritmeve.
Ky ushtrim eshte thjesht koncept, eshte sjelle nje shembull nga bota reale ku simulohet nje program i cili eshte pergjegjes per presionin (fryrjen e gomave ne dpi) te makinave te garave ne pit-stop.
Ushtrimi i pare, eshte shume i thjesht dhe mund ta shikoni ne linkun e meposhtem:
http://albanianwizard.org/Postokodin/40

Ky eshte shembulli , nderkohe qe sfida 😛 eshte te ndertohet nje ushtrim me kete kerkese.
Ja fillimi i zgjidhjes se ushtrimit.
NUK lejohet qe te perdoret while ne zgjidhjen e ushtrimit si dhe per variabilen boleane te perdoren me shume se 1 variabel.
Ja kerkesa
/*
http://albanianwizard.org
arditi*at*hush*pik*ai
Liçence GPLv3
——————————–
Zhvillimi i ushtrimit tek Pitstop.java
Kesaj here perveç kerkeses se ushtrimit te pare
duhet te kontrollojm qe gomat te jene dhe ne rrezen e duhur (midis 35 dhe 45).
Nese ndonjera nga gomat eshte jashte rrezes, printo nje mesazh per gabimin
por vazhdo duke koleksionuar te dhenat.
Perveç kesaj, krijoni nje (1 te vetme) variabel boleane “start” ku eshte ne pozicionin true
kur nuk ka gabime por kalon ne false kur presioni i gomave nuk eshte ne rrezen e duhur.
*/

import java.util.Scanner;
public class Pitstop1
{
public static void main (String[]args)
{
//Variabilat
int parad, param, mbrapad, mbrapam;
boolean start = true; //Na duhej nje variabel boleane :) [true ose false]
Scanner inPuti = new Scanner (System.in);
//Marrim te dhenat nga perdoruesi
…………………………………

Zgjidhja gjithsesi do te publikohet mbas 1 jave :)
Ne ndihme te atyre qe pranojn sfiden, ky ushtrim eshte i drejtuar me shume bazave te algoritmit dhe logjikes qe me nje rresht kodi mund te shprehesh nje mendim qe zgjidh ne teresi ushtrimin edhe pse ne perdorim eshte vetem 1 variabel boleane 😉