13.nodarbība “Vienrokas bandīts”

Komentēt

Šajā nodarbībā liksim lietā iepriekšējās nodarbībās iegūtās zināšanas par cikliem un sazarojumiem, lai izveidotu pirmo nopietnāko spēli Java valodā – tā saukto “Vienrokas bandītu“! Šādi spēļu automāti ir uzstādīti daudzās spēļu zālēs.

Nekas diži sarežģīts jau nav – 3 līdz 4 skaitļu vai figūru kombinācijas, kurs sakritības gadījumā spēlētaājs kaut ko laimē. Noteikumi var būt itin dažādi, sīkāk par šiem spēļu automātiem un Java programmas izveidi skatieties startit.lv videolekcijā Nr. 19 – atvērt to un skatīties!

1.solis

Izveido vienkāršu programmu, kura parāda 3 skaitļus (bilde no startit.lv videolekcijas):

Vienrocis_0

Programmiņas teksts:

package vienrocis.startit.lv;
public class vienrocis {
    public static void main(String[] args) {
        int first=1;
        int second=2;
        int third=3;
        System.out.println(first+”/”+second+”/”+third);
    }
}

Palaid izpildei un padomā, ko var pamainīt un uzlabot, jo programma tikai parāda 3 skaitļus!

2.solis

Izveido vienkāršu programmu, kura ģenerē un parāda 3 skaitļus (bilde no startit.lv videolekcijas):

Veinrocis_1

Programmiņas teksts var izskatīties šādi (nejaušo skaitļu ģenerēšana ar Random), kur papildinājumi ir ar citu krāsu:

package vienrocis.startit.lv
import java.util.Random;
public class vienrocis {
    public static void main(String[] args) {
       Random randomize=new Random();
        int first=randomize.nextInt(3);
        int second=randomize.nextInt(3);
        int third=randomize.nextInt(3);
        System.out.println(first+”/”+second+”/”+third);
    }
}

3.solis – papildini programmas kodu ar visu 3 ģenerēto skaitļu sakritības pārbaudi (konstrukcija ar if, bilde no startit.lv videolekcijas):

vienrocis_2

Programmiņas teksts pēc pārveidojumiem:

package vienrocis.startit.lv
import java.util.Random;
public class vienrocis {
    public static void main(String[] args) {
       Random randomize=new Random();
        int first=randomize.nextInt(3);
        int second=randomize.nextInt(3);
        int third=randomize.nextInt(3);
        System.out.println(first+”/”+second+”/”+third);
if(first==second && second==third){
            System.out.println(“Visi trīs skaitļi sakrīt!”);
    }
}

Neaimirsti pievienot bibilotēku random importam (CTRL + SHIFT +O)!

4.solis – pievienojam sakritības pārbaudi 2 skaitļiem (else bloks, bilde no startit.lv videolekcijas):

vienrocis_3

Programmiņas teksts pēc pārveidojumiem:

package vienrocis.startit.lv
import java.util.Random;
public class vienrocis {
    public static void main(String[] args) {
       Random randomize=new Random();
        int first=randomize.nextInt(3);
        int second=randomize.nextInt(3);
        int third=randomize.nextInt(3);
        System.out.println(first+”/”+second+”/”+third);
    if(first==second && second==third){
            System.out.println(“Visi trīs skaitļi sakrīt!”); //3 no 3
    }else if(first==second||first==third||second==third)
            System.out.println(“Divi no trīs skaitļiem sakrīt!”);//2 no 3
        else
            System.out.println(“Skaitļi nesakrīt!”);
}

Programmai ir trūkums – tā skaitļu kombināciju izment tikai 1 reizi, bet uzreiz laimējas ļoti reti, tādēļ programmu vajag papildināt tā, lai nesakritības gadījumā, tā dod jaunu skaitļu kombināciju!

Kā to izdarīt? Vai ciklus atceramies? Nu jau jā, tad uz priekšu, liekam klāt Do…while ciklu!

5.solis – pievienoajm ciklu do … while, kas nodrošina spēli līdz laimestam (bilde no startit.lv videolekcijas)!

vienrocis_4

Programmiņas teksts ar ciklu Do…while:

package vienrocis.startit.lv
import java.util.Random;
public class vienrocis {
    public static void main(String[] args) {
       Random randomize=new Random();
        int first=randomize.nextInt(3);
        int second=randomize.nextInt(3);
        int third=randomize.nextInt(3);
do{
        System.out.println(first+”/”+second+”/”+third);
    if(first==second && second==third){
            System.out.println(“Visi trīs skaitļi sakrīt!”); //3 no 3
    }else if(first==second||first==third||second==third)
            System.out.println(“Divi no trīs skaitļiem sakrīt!”);//2 no 3
        else
            System.out.println(“Skaitļi nesakrīt!”);
}while(!(first==second && second==third));
}

Palaid programmu! Strādā? Apsveicami! Tev ir izdevies ievadīt spēles programmu, novērst kļūmes un palaist programmu! Tas ir daudz, bet nebūt ne viss!

6.solis – pamēģini pilnveidot programmu, pievienojot pārbaudi sekojošām sakritībām (balvas var izdomāt citas):

  • sakrīt visi 3 skaitļi (galvenā balva – piem., Laimas šokolāde un CocaCola);
  • sakrīt 1. un 2.skaitļi, balva šokolāde;
  • sakrīt 2. un 3.skaitļi, balva – ChupaCups;
  • sakrīt 1. un 3.kaitļi, balva – CocaCola.
  • vēl var būt varianti, kad ir 1,2,3 vai 3,2,1, arī tos var īpaši apstrādāt, ja ir vēlme patrenēties progarmmēšanā!

Nākošajā nodarbībā – Java programmas realizācija Android aplikācijas veidā!

Kodē, kodē,
Ko Tu kodē?
Spēlītes vai kodē vai?
Kodē, kodē, kodē ganGan jau reiz no Tevis
programmeris sanāks ar!

Veiksmīgu nedēļu!

*******

12.nodarbība “Cikli ar nosacījumiem”

Komentēt

Iepriekšējā nodarbībā tika apskatīti paši vienkāršākie For cikli, kuros ir zināms atkārtojumu skaits, bet šajā nodarbībā iepazīsimies ar nedaudz sareažģitākiem cikliem, kuros izmanto nosacījumus.

Java ir divu veidu cikli ar nosacījumiem:

  • while – cikls ar nosacījumu cikla sākumā (blokshēma pa kreisi);
  • do … while – cikls ar nosacījumu cikla  beigās (blokshēma pa labi)

Bloksh_uzl

Attēls no Start IT videolekcijas

While cikla piemērs

public class Test {
   public static void main(String args[]) {
      int x = 3;//piešķir x sākuma vērtību
      while( x < 9 ) {//pārbauda, vai x ir mazāks par 9
         System.out.print("value of x : " + x );// drukā x vērtību
         x++;//palielina x vērtību par 1
         System.out.print("\n");// pāreja uz jaunu rindu
      }
   }
}

Do … while cikla piemērs

public class Test {
   public static void main(String args[]){
      int x = 5;
      do{
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }while( x < 10 );
   }
}

Uzdevumi

  • Kāda ir atšķirība abu programmu darbībā?
  • Pārveidojiet programmas tā, lai tās drukā tikai pāra vai nepāra skaitļus!
  • Pārveidojiet programmu tā, lai tā drukā īso gadu skaitļus, sākot no 2013.gada skaitļa līdz 2043.gadam!

Programma paroles pārbaudei (attēls no Start IT 13.videolekcijas)

Progr_paroles_parb

Uzdevumi:

  • ievadiet attēlā parādīto programmu;
  • pārbaudiet to darbībā – tai jāprasa ievadīt paroli, līdz tā ir korekta (parole);
  • pamēģiniet programmu ar citu paroli (nomainiet programmā parole uz citu);
  • pamēģiniet pārveidot programmu tā, lai tā neļauj minēt vairāk apr 5 reizēm!

***

11.nodarbība “Cikli”

Komentēt

Ieteicams – noskatīties videolekciju par cikliem Start IT portālā!

Ar cikliskiem procesiem saskaramies ikdienā – Zeme apriņķo Sauli, Mēness riņķo ap Zemi, katru gadu atkārtojas vieni un tie paši mēnešu nosaukumi, virzulis auto cilindrā atkārto cikliskas kustības. Tieši tāpat arī datorprogrammās var būt darbības, kuras jāatkārto noteiktu reižu skaitu vai līdz nosacījuma izpildei.

Ilustrācijai – dzīvnieku un augu dzīves cikli:

Mēness fāzes arī mainās cikliski:

Ciklus jeb atkārtojumus  izmanto noteiktu darbību atkārtošanai datorprogrammās un atbilstošas konstrukcijas ir pieejamas arī Java.

Cikls ar nosacījumu blokshēmā:

Lasīšanai par cikliem:

For cikls Java:

For_cikls

For cikls ar paskaidrojumiem (no Start IT prezentācijas):

cikls_for

1.piemērs:

for(int i=0 ; i < 5 ; i++)
{
        System.out.println(“i is : “ + i);
}

Uzdevums – izmainiet ciklu tā, lai izdrukā 12 skaitļus!

2.piemērs “Cikls drukā piramīdu” (vietne)

public class JavaPyramid1 {
 
        public static void main(String[] args) {
               
                for(int i=1; i<= 5 ;i++){
                       
                        for(int j=0; j < i; j++){
                                System.out.print(“*”);
                        }
                       
                        //generate a new line
                        System.out.println(“”);
                }
        }
}
 
/*
Programmas izpildes rezultāts jābūt sekojošs
*
**
***
****
*****
*/

Uzdevumi:

  • izmainiet programmu tā, lai tā izdrukā lielāku piramīdu;
  • izmainiet programmu tā, lai tā izdrukā 2 piramīdas;
  • izmainiet programmu tā, lai tā izdrukā simetrisku piramīdu!

For cikls ar pārtraukumu (izeju no cikla):

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
      for(int x : numbers ) {
         if( x == 30 ) {//pārtraukt ciklu, ja x-=30
	      break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

Java cikli Youtube video:

Ciklu piemēri no Java Examples:

***

10.nodarbība “Dators min skaitli!”

Komentēt

Šoreiz taps programma, kuras darbība ir pretēja iepriekšējā reizē veidotajai, jo šoreiz skaitli iedomāsies spēlētājs, bet minēs dators!

Ķeramies pie darba!

Kas nepieciešams?

  • Spēles skaitļu diapazons [a;b], izmantosim to pašu skaitļu intervālu no 1 līdz 100 jeb [1;100];
  • spēlētāja iedomātais skaitlis x (šo skaitli zina pats spēlētājs);
  • datora minējums r (nejaušs skaitlis ar Random, ko ģenerē dators);
  • minējuma izvade (lauks Large Text);
  • datora minējuma salīdzināšana ar spēlētāja iedomāto skaitli  – if (x==r) …;
  • tālākās rīcības scenārijs (uzvaras scenārijs) – pārbaudīt, kurā intervāla daļā atrodas datora iedomātais skaitlis r un kā nākošo minējumu izvēlēties jaunā skaitļu intervāla vidu (modificēta intervālu metode veseliem skaitļiem):
    • ja datora iedomātais r  lielāks, tad datoram jāpārbauda [x;b] jeb jaunais x =x+(b-x)/2 (vesels);
    • ja datora iedomātais mazāks, tad datoram jāpārbauda [a;x] jeb jaunais  x=a+(x-a)/2 (vesels).

Nu ko, būvējam programmu!

***

9.nodarbība “Uzmini datora iedomātu skaitli!”

1 komentārs

— ***** —

Vispirms ieteicams noskatīties 10.lekciju Start IT portālā! Ja nu vēl neesat to izdarījuši, tad izdariet to vēlāk, jo ar katru aktivitāti (noskatītu lekciju, izpildītu uzdevumu vai testu) Tu krāsi sev žetonus portālā un cerams, ka Tev izdosies tikt arī pie kādas balviņas, bet ir jāstrādā.

Nevis slinkojot un pūšot” (kā tai senā tautas dziemsā teikts), bet gan lasot, skatoties lekcijas, cītīgi apmeklējot nodarbības (klātienē un virtuālās), cīnoties, mēģinot un eksperimentējot var tikt uz priekšu un attīstīties! Atceries to!

Šoreiz veidosim tādu Android aplikāciju, kura lietotājam piedāvā uzminēt ierīces uzģenerēto skaitli! Aplikācijas būtīa ir sekojoša – aplikācija uzģenerē nejaušu skaitli (atceramies Random) un lietotājam piedāvā iespēju minēt šo skaitli.

Kas nepieciešams aplikācijas formā?

  • Jābūt teksta laukam (Large Text) – tajā tiks ievadīts lietotāja minējums un izvadīti paziņojumi.
  • Jābūt pogai (Button) – ar tās palīdzību lietotājs ievadīs minējumu.

Programmas darbībai nepieciešamais:

  • Globālais mainīgais, kuram aplikācija uzģenerē nejaušu vērtību no norādītā diapazona, piemēram, 1 -100.
  • Mainīgais, kuram piešķir lietotāja ievadīto vērtību  no teksta lauka.
  • Teksta lauka vērtība jāpārvēršs skaitlī un tā jāpiešķir attiecīgam mainīgajam.
  • Jāsalīdzina lietotāja ievadītais skaitlis ar aplikācijas uzģenerēto skaitli un jāpaizņo reuzltāts:
    • ja skaitļi vienādi, tad jāpaziņo, kas skaitlis uzminēts – if (a==b){
    • ja lietotāja ievadītais skaitlis lielāks, tad jāparāda paziņojums “Lielāks”  – ar setText(“Lielāks!”);
    • citādi jeb ja lietotāja ievadītais skaitlis mazāks, tad jāparāda paziņojums “mazāks” – ar setText(“Mazāks!”)!
  • Pogas īpašībai OnClick jāpievieno atbilstošais nosaukums no aplikācijas (visdrīzāk šeit būs click).

Izveidotās aplikācijas teksts var būt šāds:

import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
int skaitlis=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random r = new Random();
int skaitlis = r.nextInt(100)+1;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void click(View v){
EditText minejumalauks=(EditText)findViewById(R.id.minejums);
TextView teksts=(TextView)findViewById(R.id.teksts);
String vertiba=minejumalauks.getText().toString();
int minejums=0;
try{
minejums=Integer.parseInt(vertiba);
}catch(Exception e){
teksts.setText(“Ievadi skaitli!”);
}
if (minejums==skaitlis){
teksts.setText(“Uzminets!”);
Random r = new Random();
int skaitlis = r.nextInt(100)+1;
}else {
if(minejums>skaitlis){
teksts.setText(“Par lielu!”);
} else {
teksts.setText(“Par mazu!”);
}
}
}
}

Ja atrodam kļūdas programmas tekstā, tad dodiet ziņu!

Ko vēl var darīt?  Pamēģini izdomāt, kā likt aplikācijai fiksēt mēģinājumu skaitu! Kā izpildīto mēginājumu skaitu parādīt spēlētājam?

Nākošajā nodarbībā – par to, kā likt programmai minēt lietotāja iedomāto skaitli un arī par minēšanas uzvaras stratēģiju (jānoskatās 11.lekcija startit.lv portālā)!

***

8.nodarbība “Nejaušie skaitļi”

Komentēt

Šoreiz – nejaušie skaitļi un to pielietojums!

LIELĀ NEJAUŠĪBA jeb gadījumskaitļi! Kas gan tas ir? Vai Tu to zini?

Tie, kuri jau mācās fiziku, droši vien zina par daļiņu haotisko siltumkustību (skatīt) un Brauna kustību. Haotiska ir putekļu kustība – to var redzēt māju bēniņos, kad tur iespīd Saules gaisma. Ja mēs no kosmosa ilgāku laiku skatītos automašīnu kustību un fiksētu to kustības trajektorijas, tad arī šis process mums liktos haotisks, tieši tāpat kā skudru kustība pūznī. Nejaušība ir arī dažādu loteriju pamatā – laimīgais biļetes numurs parasti ir nejaušs skaitlis no pieņemtā skaitļu diapazona, tieši tāpat arī monētas vai kauliņa mešanas rezultātu nosauka neajušie procesi jeb gadījumskaitļi. Šādu nejaušu haotisku procesu pamatā ir gadījumkaitļi (Random) – pievienotajā animācijā katras daļiņas koordinātes kādā laika momentā ir nejauši skaitļi.

Daļiņu haotiskā siltumksutība

Citi piemēri ilustrācijās – skatīt šeit! Ja ilgāku laiku vērsoim 1 daļiņas kustību, tad tās kustības trajektorija būs līdzīga nākošajā attēlā redzamajai.

Nejaušie jeb gadījumskaitļi datorprogrammās

Gadījumskaitļu ģenerēšanai parasti izmanto speciālu funkciju, kuras nosaukums parasti atvasināts no angļu vārda Random (nejaušs). Piemēram, Rnd (n) vai Java valodā tas pats Random! Gadījumskaitļus iespējams relatīvi vienkārši programmēt.

Ja noskatījāties Startit.lv portālā ievietotās lekcijas, tad šobrīd jau nojaušat, ka šo nejaušo skaitļu ģenerēšanas iespēju var lieliski izmantot ļoti daudzās spēlēs un arī citās datorprogrammās:

  • nejaušie pasauļu ģeneratori;
  • skaitļu un vārdu minēšanas spēles;
  • dažādi Loto;
  • Mahjong tipa spēles (kauliņu sākotnejais ievietojums);
  • u.tml.

Kā tad lietot Random savās Java programmās?

Vispirms jau ieteicams pastudēt literatūru:

  • noskatīties 9.lekciju portālā Startit.lv;
  • Function.com par nejaušajiem skaitļiem – lasīt;
  • Java Practices (En) – skatīt;
  • Java.about.com – skatīt;
  • pdf formātā (En, viegli izdrukāt) – skatīt;
  • materiāls ar īsiem korektiem pasakidrojumiem – lasīt;
  • gatavs piemērs ar ciklu (vēl neesam mācījušies) – skatīt.

Darbību secība:

  • importēt bibliotēku Random lietošanai;
  • izveidot  objektu Random;
  • izveidot piemērotu metodi nejaušā skaitļa ieguvei;
  • jāievieš mainīgais metodes rezultāta saņemšanai;
  • ja nepieciešami vairāki nejaušie skaitļi metodi var izmantot atkārtoti;

import java.util.Random – Random klases imports

Random name = new Random(); – izveido objektu Random tavā Java programmā;

int nextInt() – metode dos kādu veselu pseidonejaušu skaitli no 2^32 veseliem skaitļiem;

vai int nextInt(int range) – metode dos kādu veselu pseidonejaušu skaitli no diapzona range: 0 <= x < range.;

int num = r.nextInt(10) + 1; – veselais mainīgais num iegūst vērtību kā veselu nejaušu skaitli  diapazonā 0 -10!

Vienkāršas Java programmas piemērs nejauša vesela skaitļa nejauss ģenerēšanai :

import java.util.Random;
// bibliotēkas Random imports
public class ArrayRandom{
	public static void main(String args[]){
		Random r = new Random(); //Izveido objektu Random tavā Java programmā;
		int nejauss = new int(20);//Izveido metodi un nodod vertību veselam mainīgajam nejauss;
		System.out.print("Nejaušs skaitlis = " +nejauss);//izdrukā mainīgā nejauss vēertību;
	} //main
} //class

Nejaušie skaitļi Android aplikācijā

Līdzīgā veidā varam šeit iegūtās zināšanas izmantot savās Android aplikācijās – skatieties 9.lekciju portālā Startit.lv!

Darbības:

  • izveidot jaunu Android aplikācijas projektu;
  • uzlikt uz formas teksta objektu Large Text, nomainīt tā identifikatoru uz Teksts un Text vērtību uz tukšu;
  • uzlikt uz formas teksta objektu  Button, nomainīt tā identifikatoru uz Poga un Text vērtību uz Ģenerēt;
  • izveidot savu programmas koda fragmentu (kā 9.lekcijā), tas var izskatīties līdzīgs talākajā piemērā dotajam;
    • neaizmirstam pieimportēt mūsu pieprasītās bibliotēkas (CTRL + SHIFT + O);
    • korekti pievienojam R.id ar CTRL +atstarpe palīdzību no parādītā saraksta;
  • klases nosaukumu click pievienojam pogai View => OnClick => click;
  • saglabājam ikreiz pēc katras koda rindiņas pievienošanas un beigās arī to nepiemirstam;
  • palaižam savu Android aplikāciju un  testējam;
  • ja ir Ok, pamainām programmas kodu (kaut ko pieleikeam, izmainām) un atkal testējam!
  • Mobilajā ierīcē var iekopēt atbilstošo aplikāciju  nosaukums.apk (ar paplašinājumu .apk) no projekta Bin mapes!

public void click(View view){
        Random kaulins= new Random();
        int vertiba=kaulins.nextInt(6)+1;
        TextView Teksts=(TextView)findViewById(R.id.Teksts);
        Teksts.setText(“Random = “+vertiba);
    }

Startit.lv 9.lekcijā Android programmas Java koda logs izskatījā šādi:

Random_2

Ja ir velēšanās, tad var mēģināt pievienot sazarojumu, kurā tiek noteikts, ka uzkrītot skaitlim 6, tiek izvadīts paziņojums “Maksimālais!”

if (vertiba==6){                       

Teksts.setText(“Maksimālais!”);

}else{

Teksts.setText(“Random = “+vertiba);

{

Nu tad kā ir? Piekusāt! Tas nekas, paturiet prātā, ka jebkuras prasmes, t.sk. programmēšanas prasmes ir iegūstamas tikai mācoties un strādājot! Galu galā rezultāts būs ieguldīto pūļu vērts, bet līdz tam tiks tikai tie, kuri nepadosies!

***

Ak, kāds vēl nav paguris? Nu tad Eclipsē jaunā Java projektā pablēņojieties ar tālāk pievienoto programmiņu un pamēģiniet tikt skaidrībā, ko šī programma dara un, galvenais, kādēļ tā dara!

import java.util.Random;
public class RandomStars{
	public static void main(String args[]){
		Random r = new Random();
		int num = 0;

	      for(int i = 0; i < 25; i++){
	         //random numbers from 0 to 15:
	         num = r.nextInt(16);
	         for(int j = 0; j < num; j++) 
	    	      System.out.print("*");
	         System.out.println();
	      }
	} //main
} //class

Nu gan šai reizei – viss! Līdz nākošajai nodarbībai!

*****

7.nodarbība “Sazarojumi”

Komentēt

Sazarojumi ir saistīti ar izvēles situāciju apstrādi. Ikdienā bieži sastopamies ar dažādām izvēles situācijām.

Lūk, meitene iet pa taku, taka sadalās! Kurp iet?

cels_sazarojas

Citi piemēri:

  • ja esi visus uzdevumus izpildījis, vari uzspēlēt kādu datorspēli;
  • ja ārā ir auksts, tad jāsaģērbjas siltāk;
  • ja karstā dienā ir pietiekami daudz naudas, tad var nopirkt saldējumu, citādi – konfekti;
  • ja ieskaiti esi slikti nokārtojis, tad jāiet uz konsultācijām, citādi saņemsi “brāzienu”;
  • u.tml.

Vietnes materiālu pētīšanai un apguvei:

Sazarojumi ilustrācijās

saz_0

saz_2

saz_3

saz_4

saz_5

Algoritms “Bulciņa”

Tu jau zini, ka nav ieteicami daudz ēst saldumus, kūkas vai smaklmaizītes (bulciņas), jo tā var iegūt lieko svaru! Tomēr Tev tik ļoti kārojas apēst bulciņu, bet nevari izlemt ēst vai neēst!

Te nu klasiskā izvēles situācija! Ko nu darīt? Ēst to gardo bulciņu vai neēst?

Risinājums: liec lietā vienkāršu algoritmu – met monētu (1Ls)!  Ja uzkrīt lasis ar 1Ls, tad apēd, citādi (ģērbonis) neēd gan!

Algoritms domu kartē

Domuk_bulcina 

Algoritma blokshēma

Bulcina_blokshema

Sazarojums neformālā pierakstā:Ja uzkrīt lasis,tad apēd,citādi (ģērbonis) neēd gan!

  Sazarojums Java pierakstā:

           if (lasis){

                          apēd

                         }else{

                          neēd gan

           {

Sazarojumi piemēros

1,piemērs “Skaitlis”

Programma paprasa skaitli un nosaka, vai skaitlis lielāks par 10, vai mazāks. Ja lielāks, tad izdrukāt “Lielāks!”, citādi izdrukāt “Mazāks!”

Algoritma blokshēma

 alg_skaitlis

Java programmas kods

package Skaitlis;

public class Skailis {

/*** @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int x = 5;
if (x >10) {
System.out.println(“Lielāks!”);
}

                         else {
System.out.println(“Mazāks!”);
}
}

}

2.piemērs “Kvadrāts” (ideja – M.Jegorovs, Accenture)

Kvadrats

Algoritma blokshēma

bloksh_kvadrats

Java programmas kods

public class Kvadrats {

public static void main(String[] args) {

        int x = ?, y = ?;

        if (x ==y) {

                          System.out.println(“Kvadrāts”);

                       } else {

                                  System.out.println(“Taisnstūris”);

                                }

                      }

}

Sazarojumi ar Switch Case

Šādu sazarojumu veidu izmanto, ja ir jāizpilda atšķīrīgas darbības atkarībā no noteikta parametra (mainīgā) vērtības – piemēram, dienas nosaukuma atkarībā no dienas numura, mēneša nosaukuma atkaribā no tā numura, u.tml.

Switch Case ideja

vai arī šajā bildē

Piemērs ar nedēļas dienām:

saz_Case

Reāla Java programma dienas nosaukuma izvadei atkarībā no dienas numura var būt šāda:

package Dienas;
public class Dienas {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int  day = 3;
        String dayString = null;
        switch (day) {
            case 1:  dayString= “Pirmdiena”;
                     break;
            case 2:  dayString= “Otrdiena”;
                     break;
            case 3:  dayString= “Trešdiena”;
                     break;
            case 4:  dayString= “Ceturtdiena”;
                     break;
            case 5:  dayString= “Piektdiena”;
                     break;
            case 6:  dayString= “Sestdiena”;
                     break;
            case 7:  dayString= “Svētdiena”;
                     break;
                       }
        System.out.println(dayString);
    }

}

Programmiņa ar dienām nedaudz citādā versijā (bilde):

Veiksmīgu darbošanos ar sazarojumiem!

***

6.nodarbība “Mainīgie, to lietošana”

Komentēt

Uzreiz jāpasaka, ka tēma ir ļoti svarīga! Mainīgos šajā programmēšanas kursā nāksies izmantot bieži un daudz, tādēļ pētām pieejamos materiālus un mēģinām galveno saprast! Vēlams arī šo to atcerēties! Nebaidāmies veidot savus pierakstus, tie noteikti palīdzēs apgūt svarīgāko un noderēs vēlāk!

Tēmas apguves secība

  1. Vispirms vajadzētu iepazīties ar 6.nodarbības teorētiskajiem materiāliem portālā startit.lv – izpētīt 6.nodarbības videolekciju (atvērt)!
  2. Par mainīgajiem var ieskatīties šajās vietnēs:

    3. Youtube video par mainīgajiem Java (En):

4. Veido un izmēģini vienkāršas Java  programmas ar dažādiem mainīgajiem!

***

Laiks paprogrammēt mainīgos! Paeksperimentēsim!

Sagatavošanās:

  • izveidot jaunu Java projektu Eclipse vidē: File => New => Java Project => ievadīt nosaukumu;
  • izveidot jaunu klasi: PLP uz projekta nosaukuma => New => Class, ievvadīt nosaukumus un aktivizēt opciju  public static void main (….)!
  • atvērt projekta java failu un tad var sākt izmēģināt programmas ar mainīgajiem – skat.zemāk!

1. programmas fragments:

public static void main(String[] args) {

                   int rez=7+3;

                   System.out.println(“rezultāts=”+rez);

                                  //Ko izdrukās? Ko programma dara?

                                //Kā uzlabot izdruku?

     }

2. programmas fragments:

public static void main(String[] args) {

                                 int a=3;

                                 int b=5;

                                 int x=a/b; //Cik būs x?

                                 System.out.println(“x = “+x); //Kādēļ = jāatdala ar atstarpēm?

                                                   //Kāpēc izdrukā x=0?

                   }

3. programmas fragments:

public static void main(String[] args) {

                                   int a=3;

                                   int b=5;

                                   int y=a*b; //Cik būs y?

                                  System.out.println(“y = “+y);

                                            // Vai izdrukā y=15?

                      }

4. programmas fragments:

                      public static void main(String[] args) {

                                 String ab=”Auces ir “;

                                String ba=”novada centrs!”;

                               System.out.println(ab+ba);

                                             // Kāpēc izdrukā: «Auces ir novada centrs!»?

                       }

5. programmas fragments – saliekam visus fragmentus vienā programmā!

                       public static void main(String[] args) {
                                   int rez=7+3;
                                  System.out.println(“rezultāts=”+rez);
                                                 //Ko izdrukās?
                                  int a=3;
                                  int b=5;
                                 int x=a/b; //Cik būs x?
                                 int y=a*b; //Cik būs y?
                                 System.out.println(“x = “+x); //Kādēļ = jāatdala ar atstarpēm?
                                               //Kāpēc izdrukā x=0?
                                System.out.println(“y = “+y);
                                String ab=”Auces ir “;
                                String ba=”novada centrs!”;
                                System.out.println(ab+ba);
                                              // Kāpēc izdrukā: «Auces ir novada centrs!»?
                       }

Papētiet savu programmu! Kas notiks, ja pamainīsiet mainīgo vērtības? Pamēģiniet papildināt programmu ar citiem fragmentiem, kuros izmantoti dažādu tipu mainīgie!

Aplaudēsim sev!
Esam iemācījušies programmēt vienkāršus aritmētikas uzdevumus!

****

5.nodarbība “Pirmā Android aplikācija”

Komentēt

         Pienācis laiks izveidot pirmo Android aplikāciju un tas nekas, ja ne visas nianses Tev uzreiz nebūs pilnībā saprotamas. Android aplikācijas izveides process ir diezgan garš, tādēļ apbruņojies ar kārtīgu pacietības devu, jo apgūstot šādu aplikāciju izvedi Tu būsi izcīnijis jau itin nopietnu  uzvaru! Aiziet!

1. solis: aiziet uz portālu startit.lv, pierakstīties un noskatīties 5.nodarbības video! Var skatīties un veidot programmu, paralēli vērojot lekciju un vajadzīgajos momentos to apturot (pauzējot) un pēc tam atkal palaižot skatīšanās režīmu.
2. solis: palaist Eclipse
3. solis: File => New => Android Application Project

New_Android_Project

4.solis: nomainām nepieciešamās vērtības

New_aplicat_vertibas_pask

5.solis: norādīt saglabāšanas vietu, palaišanas ikonas veidu!

saglab_vieta_pask

6.solis: Create Activity logā atstāt Blank Activity!

Create_Activity

7.solis: logā Blank Activity nomainīt Activity Name uz Button!

Activity_name

8.solis: apskatām un pārbaudām uzģenerēto aplikācijas Button komplektu:

  • Button => src => lv.startit. button => button.java – mūsu aplikācijas Java programmas kods;
  • Button => res => layout => activity_button.xml – ekrānformas diziana elementu apraksts un attēlojums;
  • Pallete – izmantojamo objektu kolekcija, no kuras nepieciešamos vienkārši ir jāievelk uz formas vēlamajā vietā;
  • Outline – šeit atrodami uz ekrānformas izvietotie objekti, šeit tos var izvēlēties (atlasīt, aktivizēt);
  • Properties – atlasītā objekta īpašību saraksts, šeit var mainīt īpašību vērtības!

Proj_logs_pask

9.solis: tagad no Pallete uzvilkt uz formas pogu Button  un nomainīt tās ID un uzrakstu (skat. attēlus):

  • ID laukā ierakstīt Poga, pēc tam spiest taustiņu Enter un apstiprināt ar Yes un pēct ar Ok, beigās ir jābūt @+id/Poga;
  • Text laukā ierakstīt Spied, pēc tam spiest taustiņu Enter un apstiprināt ar Yes un pēct ar Ok, beigās šajā laukā ir jābūt Spied!;

Update_refernces

Rename_Resource

Button_prop_pask

10.solis: no Pallete uzvilkt uz formas teksta lauku  TextView un nomainīt tās ID uz Teksts un rādāmo tekstu laukā Text uz tukšumu (neko):

  • ID laukā ierakstīt “Teksts, pēc tam spiest taustiņu Enter un apstiprināt ar Yes un pēc tam ar Ok, beigās ir jābūt @+id/Teksts;
  • tekstu laukā Text uz tukšumu (neko) – izdēst esošo tekstu šajā laukā un apstiprināt ar Yes un pēc tam ar Ok, beigās šajā laukā nav nevienas rakstzīmes (skat. attēlu)!

Text_prop_pask

11.solis: saglabāt visu izveidoto – poga Save vai CTRL + S!

12.solis: pāriet uz Button.java kodu un to atvērt labošanai  – Button => src => lv.startit. button => button.java!

13.solis:  papildināt programmas Button.java kodu tā, lai tā mācētu atrast nepieciešamos objektus (šeit – teksta rāmi) un iestrādāt nepieciešamo objektu uzvedību, šeit – pogas nospiešanai jāizsauc uzraksta “Sveika, Auce!” parādīšanos ekrānformā! Komentāri programmas koda fragmentā ir iekrāsoti. Koda fragments (var bez komentāriem) ir jāievada tālāk pievienotajā attēlā norādītajā vietā!

public void onClick(View view){

             //atrast teksta elementu

      TextView t=(TextView)findViewById(R.id.Button);

            // R.id.Button atrašanai, pēc R.id. ievades var nospiest CTRL + atstarpe, lai attiecīgo identifikatoru (šeit Button) atrastu sarakstā!

           //Saglabāt un izmantot taustiņu kombināciju CTRl + Shift + O, lai pievienotu importu

          //likt parādīt tekstu “Sveika, Auce!

      t.setText(“Sveika, Auce!”);

          //Saglabāt un izmantot taustiņu kombināciju CTRl + Shift + O, lai pievienotu importu

        }

Button_Java_code

14.solis: vēlreiz visu saglabāt ar CTRL + S!

15.solis: izveidotajā programmas koda fragmentā rindā public void onClick(View view){ atlasīt un nokopēt metodes nosaukumu – šeit tas ir onClick!

16.solis: pāriet uz ekrānformu Button_avtivity.xml un ielīmēt nokopēto metodes nosaukumu Properties sarakstā sadaļā View īpašības onClick laukā, apstiprināt ar taustiņu Enter (metodes nosaukumam jāpaliek šajā laukā)! Vēlreiz visu saglabāt ar CTRL + S!

onClick_pask

17.solis: mūsu aplikācija ir gatava un var to palaist izpildei ar PLP uz projekta Button => Run As => Android Application! Ja nepieciešams, jānorāda, kādai Android iericei aplikācija ir jāpalaiž! Startēšanas laikā Eclipse uzģenerēs projekta Button apakšmapē Bin failu Button.apk vai Poga.apk (atkarībā no pieškirtā nosaukuma), to varēs izpildīt reālā Android ierīcē (vietu  skat. attēlā)!

Button_apk_vieta

18.solis: gaidām un vēl pacietīgi pagaidām, kamēr Android emulators uzstartēs aplikāciju līdz galam – tā ir resursu ietilpī un prasa kādu laiciņu! Nu tad beidzot ir! Apsveicu Tevi ar pacietību! Tagad Tavā priekšā ir Android mobilās ierīces ekrāns, atbloķē to un pārbaudi, vai Tava izveidotā aplikācija strādā! Strādā? Tiešām? Aplausi TEV! Tev  ir izdevies izveidot un palaist pirmo Andriod aplikāciju!

19.solis:  ja ir vēlme, tad ar e-pastu nosūti Button.apk failu (atrodas saglabātā projekta Button mapē Bin) uz savu tālruni (vai pārkopē) un palaid to izpildei, pārliecinies, ka tā strādā! Pēc tam vari to papildināt un uzlabot līdzīgā veidā, kā veidoji šo pirmo Android aplikāciju!

Noderīgas tautiņu kombinācijas (Agūsti tās!):

  • saglabāt: CTRL + S
  • meklēt objektu:  CTRL + atstarpe
  • pievienot importu: CTRL + Shift + O

Kļūdas programmā – jāpievērš uzmanība rindām, kuru sākumā redzams sarkans krustiņš, uz tā uzkliksķinot, Eclipse rāda, kāda var būt kļūda un arī variantus labošanai – skat. attēlu!

Kluudu_pr_teicejs

Vēlu veiksmi un par problēmām stāstiet!

*******

4.nodarbība “Robotu kaujas ROBOCODE”

Komentēt

Apsveicu, jo esat jau uzrakstījuši pirmo Java programmiņu, to pārveodijuši, papildinājuši un šo to mācījušies no savām kļūdiņām un neprecizitātēm.

Atkārtojumam no iepriekšējās nodarbības – uzmanīgi apskatām attēlā esošos paskaidrojumus un mēģinām svarīgāko iegaumēt, tad darbs veiksies raitāk!

progr_pask

Paspēlēsies ar Java un Robocode? Nu tad aiziet! Mājās noteikti ieteicams noskatīties 4.nodarbības video portālā startit.lv!

Robocode ikona palaišanai:

Robocode_ikona

Robocode darba vide:

Robocode_New New_robotu_izvele

Robots_rules

Robota programmēšana:

  • Robot => Editor => File => Open => Sample => izvēlas savu robotu => Open

Robot_editor  Robot_sample

  • rediģē robota programmas kodu, testē, atkal rediģē un pielnveido, testē, sacenšas ar citiem;

Robot_code

  • Pakotnes nosaukuma izveide (pievērsiet uzmanību nosaukuma daļām un maju struktūrai):

Lv_msartit_avrob_pask

Robota kustības koda fragments, ar to varam padarboties – labot, papildināt, kopēt, u.tml.:
            ahead(100);
            turnGunRight(360);
            back(100);
            turnGunRight(360);

Pilnīgāks koda fragments redzams attēlā:

Jauna_robot_kods

Pētiet arī citas vietas robota programmas kodā, mainiet vērtības un mēģiniet panākt interesantāku robota uzvedību, labāku reakciju uz situācijas maiņu! Pamazām sāksiet saprast, kā mainīt robota darbības, tādēļ varat papētīt gatavo programmas robotu kodus un, iespējams, kādu koda daļu jau varēsiet izmantot savam jaunizveidotajam robotam!

Iebūvēto piemēra robotu koda atvēršana:

  • Robot => Editor => File => Open => Sample => izvēlas pētamo robotu => Open

Veiksmi robota dīdīšanā un robotu kaujās!

Older Entries