41
L o g o Java Programming Улаанбаатар дээд сургууль 2011 он Java өгөгдлийн бүтэц багш Á.Ãàíçîðèã

Java lecture4

Embed Size (px)

Citation preview

Page 1: Java lecture4

L o g o

Java Programming

Улаанбаатар дээд сургууль 2011 он

Java өгөгдлийн бүтэцбагш Á.Ãàíçîðèã

Page 2: Java lecture4

L o g o

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Агуулга

Функцийн аргумент дамжуулалт 3

Маth класс ашиглах 4

Java сан (Package)1

Функц түүний хэрэглээ 2

Санамсаргүй тоо ашиглах 5

JTextArea класс 6

Массив 7

Page 3: Java lecture4

L o g o

Java сан (Package)

Урьдчилан бэлдэж өгсөн классууд Java-ийн санд бүлэг бүлгээрээ байдаг.

Нэг төрлийн үүрэг гүйцэтгэдэг классууд нэг сан дотор байрладаг.

Санг import түлхүүр үгийн тусламжтай ашигладаг.

Жишээ нь:

import javax.swing.JOptionPane;

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 4: Java lecture4

L o g o

Java сан (Package)

Java сангууд нь хавтас (folder) хэлбэрээр байх бөгөөд уг сан доторх классууд нь уг хавтас доторх class өргөтгөлтэй файлууд юм.

Java-н хавтас дахь jre\rt.jar файлд java-н сангууд байрладаг.

JVM програм ажиллахад шаардлагатай классыг (import-д заасны дагуу) rt.jar файлаас авч ашигладаг.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 5: Java lecture4

L o g o

Жишээ сангууд

java.lang: java дээр бичигдсэн ихэнх програмууд ашигладаг гол үндсэн функцүүд байрлана. Бүх java програмд автоматаар импортлогддог.

javax.swing: График, цонх ашигласан java программуудад хэрэглэгдэнэ.

java.applet: аудио, клип, интернэт програмчлалд ашиглагдах аплет класс.

java.util: огноо, тэмдэгт мөр, санамсаргүй тоотой ажиллах классууд байрлана.

java.io: Java-н оролт гаралтын классууд. Файлаас угших, бичих гэх мэт.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 6: Java lecture4

L o g o

Функц зарлалт

Функц Програм бичих процессийг

хялбаршуулах Шаардлагатай үед дуудаж хэрэглэх Кодыг давтаж бичих үзэгдлээс

сэргийлэх Локал хувьсагч

Функц дотор зарлагдсан хувьсагч

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 7: Java lecture4

L o g o

Функц зарлалт

Функцийг дараах байдлаар зарлана:

public БуцаахТөрөл ФункцНэр (ПараметрТөрөл Параметр)

public static БуцаахТөрөл ФункцНэр(ПараметрТөрөл

Параметр) Жишээ:

public int square (int y)

public String getName (int x, int y) Return түлхүүр үг ашиглан функц дотроос утга буцаадаг.

Return бичлэгийг ажиллуулангуут функц дуусаж програмын удирдлага уг функцийг хаанаас дуудсан тэнд буцаасан утгыг авч очдог.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 8: Java lecture4

L o g o

Функц ашиглалт

Cтатик функц ашигласан жишээ. Эхний 10 ширхэг тооны кубыг ол.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

public class FunctionDemo{public static int cube (int x){

return x * x * x; }

public static void main ( String args[] ){

for ( int i = 1; i < 10; i++)System.out.println( cube ( i ) );

}}

Page 9: Java lecture4

L o g o

Функц ашиглалт

Cтатик биш функц ашигласан жишээ. Эхний 10 ширхэг тооны кубыг ол.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

public class FunctionDemo{public int cube (int x){

return x * x * x; }

public static void main ( String args[] ){

FunctionDemo myObject = FunctionDemo();

for ( int i = 1; i < 10; i++)System.out.println( myObject.cube ( i ) );

}}

Page 10: Java lecture4

L o g o

Функц дуудалт

Нэг классын функцүүд бие биенээ дуудах дүрэм: Нэг классын статик функцээс тухайн классын

статик биш функцийг дуудвал заавал уг классын обьектоор дамжуулж дуудна.

Нэг классын статик функцээс тухайн классын статик функцийг дуудвал шууд нэрээр нь эсвэл обьектоор нь дуудаж болно.

Нэг классын статик биш функцээс тухайн классын статик болон статик биш функцийг дуудвал шууд нэрээр нь эсвэл обьектоор нь дуудаж болно.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 11: Java lecture4

L o g o

Функц дуудалт

Нэг классаас өөр классын функц дуудах тохиолдолд: Өөр классын статик функцийг дуудвал заавал

классын нэрээр нь дуудна.• Жишээ нь B класс дотроос А классын static add функцийг

дуудвал:– A.add( );

Өөр классын статик биш функцийг дуудвал заавал обьектоор нь дамжуулж дуудна.• Жишээ нь B класс дотроос А классын add функцийг

дуудвал:– A myObject = new A( );– myObject.add( );

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 12: Java lecture4

L o g o

Функцийн параметр дамжуулалтJava-д хоёр төрлийн параметр (аргумент)

дамжуулалт байдаг. Утгаар дамжуулах (Pass by Value)

• Дамжуулагдаж байгаа параметрийн утгыг хуулаад функцэд дамжуулна.

• Өгөгдлийн үндсэн төрлүүд (int, char, гэх мэт эхний үсэг нь жижгээр бичигддэг төрлүүд) бүгд утгаар дамжигддаг.

Заалтаар дамжуулах (Pass by Reference)• Дамжуулж буй өгөгдлийн эх хувийг дамжуулна.• Дуудагдсан функц энэ эх хувийг өөрчилж болно.• Утгаар дамжуулахыг бодвол илүү хурдан байдаг.• Java-д бүх обьектууд заалтаар дамжигддаг.

Java –д массив бол обьект юм.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 13: Java lecture4

L o g o

Функцийн параметр дамжуулалт

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

public class ArgumentDemo{public void sub(int x){

System.out.println(“x =: ” + x);x = x + 1;System.out.println(“x =: ” + x);

}public static void main()

{int z =12;System.out.println(“z =: ” + z);sub(z);System.out.println(“z =: ” + z);}

Page 14: Java lecture4

L o g o

Утгаар параметр дамжуулах

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

public class ArgumentDemo{public void sub(String m){

System.out.println(“Функц дотор эхлээд: ” + m);m = “C++”System.out.println(“Функц дотор дараа нь: ” + m);

}public static void main()

{String m = “Java”;System.out.println(“Дамжуулахын өмнө: ” + m);sub(m);System.out.println(“Дамжуулсны дараа: ” + m);}

}

Page 15: Java lecture4

L o g o

Заалтаар параметр дамжуулах

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

public class ArgumentDemo{public void sub(String s){System.out.println(“Функц дотор эхлээд: ” + s[0] + “ “ + s[1]);s[0] = “C”;s[1] = “is procedural.”;System.out.println(“Функц дотор дараа нь: ” + s[0] + “ “ + s[1]);}

public static void main(){String m[] = {“Java”,”is object oriented.”};System.out.println(“Дамжуулахын өмнө: ” + m[0] + “ “ + m[1]);sub(m);System.out.println(“Дамжуулсны дараа: ” + m[0] + “ “ + m[1]);}

}

Page 16: Java lecture4

L o g o

Math класс

Математик функцүүдийг ашиглах боломж олгоно.

Ашиглахын тулд import java.lang.Math гэж оруулж ирэх хэрэгтэй.

Жишээ: 900-аас язгуур гаргахдаа

Math.sqrt( 900.0 )

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 17: Java lecture4

L o g o

Math классМаth классын зарим функцүүдээс жагсаавал:

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

функц Тайлбар Жишээabs( x ) x-ийн модулийг олно (абсолют утгыг) abs( 23.7 ) нь 23.7

abs( 0.0 ) нь 0.0 abs( -23.7 ) нь 23.7

ceil( x ) x-ийг өөрөөс нь багагүй хамгийн ойр бүхэл тоо руу тоймлох

ceil( 9.2 ) нь 10.0ceil( -9.8 ) нь -9.0

cos( x ) x-ийн косинус (x нь радианаар) cos( 0.0 ) нь 1.0exp( x ) e тооны х зэргийг олно. exp( 1.0 ) нь 2.71828

exp( 2.0 ) нь 7.38906floor( x ) x-ийг өөрөөс нь ихгүй хамгийн ойр бүхэл тоо

руу тоймлохfloor( 9.2 ) нь 9.0floor( -9.8 ) нь -10.0

log( x ) x-ийн натурал логарифм (e суурьтай) log( Math.E ) нь 1.0log( Math.E * Math.E ) нь 2.0

max( x, y ) x ба y ийн аль ихийг нь олно. max( 2.3, 12.7 ) нь 12.7max( -2.3, -12.7 ) нь -2.3

min( x, y ) x ба y ийн аль багыг нь олно. min( 2.3, 12.7 ) нь 2.3min( -2.3, -12.7 ) нь -12.7

pow( x, y ) x -ийг y зэрэгт дэвшүүлэх pow( 2.0, 7.0 ) нь 128.0pow( 9.0, 0.5 ) нь 3.0

sin( x ) x-ийн синус утга (x нь радианаар) sin( 0.0 ) нь 0.0sqrt( x ) x-ээс язгуур гаргах sqrt( 900.0 ) нь 30.0

sqrt( 9.0 ) нь 3.0

Page 18: Java lecture4

L o g o

Math класс жишээ

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

import java.lang.Math;public class MathDemo{public static void main(String args[])

{System.out.println(“16 root:” + Math.sqrt( 16 ));System.out.println(“16 iin 3 zereg:” + Math.pow( 16, 3 ));System.out.println(“16.15 toimloh” + Math.floor( 16.15 ));System.out.println(“16 ба -16 –ийн их нь :” + Math.max(16,-16));}

}

Page 19: Java lecture4

L o g o

Санамсаргүй тоо ашиглах

Програм бичих явцад ямар нэгэн урьдчилан зохиосон биш санамсаргүйгээр үүсэх тоонуудыг ашиглах шаардлага гардаг.

Жишээ нь: Мөрий тавьж морь уралдуулах програм.4 шагай хаях тоглоом Ижил эрхтэй 10 хүнээс нэгийг нь сонгох.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 20: Java lecture4

L o g o

Санамсаргүй тоо ашиглах

Санамсаргүйгээр тоо үүсгэхийн тулд Math.random функцийг ашигладаг. Энэ функц нь [0;1[ завсрын санамсаргүй бутархай тоо буцаадаг.

Жишээ: (int) ( Math.random() * 6 ) нь 0-5

хоорондох санамсаргүй нэг утга буцаана.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Тайлбар: 6 аар үржүүлээд бүхэл хэсгийг нь авч байна.

Page 21: Java lecture4

L o g o

JTextArea класс

Олон мөрөөс тогтсон текстүүдийг цонхон дээр дүрслэх чадвартай.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Цагаан хэсэг нь JTextArea

Page 22: Java lecture4

L o g o

JTextArea класс

Ашиглахын тулд import javax.swing.JTextArea; эсвэл

• import javax.swing.*; гэж оруулж өгнө.

Обьектийг нь зарлана:• JTextArea myText = new JTextArea();

Текстийг нь setText функцээр нь оруулж өгдөг. • myText.setText (“Hello class!”);

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 23: Java lecture4

L o g o

JTextArea класс

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

import javax.swing.JOptionPane; import javax.swing.JTextArea;public class TextAreaDemo{public static void main (String args[])

{String output;JTextArea mmm = new JTextArea();mmm.setText("Sirname: \tBold \n Name: \tGan");JOptionPane.showMessageDialog( null, mmm, "Anket",

JOptionPane.INFORMATION_MESSAGE);output = "Ovog: Bold \n Ner: Gan";mmm.setText(output);JOptionPane.showMessageDialog( null, mmm, "Anket",

JOptionPane.INFORMATION_MESSAGE);System.exit(0); }

Page 24: Java lecture4

L o g o

Санамсаргүй тоо жишээ

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

import javax.swing.JOptionPane; public class RandomIntegers { public static void main( String args[] ) { int value; String output = "";// 20 удаа давтах for ( int counter = 1; counter <= 20; counter++ ) {// 1-ээс 6 хоорондох тооноос санамсаргүйгээр сонгох value = 1 + ( int ) ( Math.random() * 6 ); output += value + " "; // уг сонгогдсон тоог гаралтын хувьсагчид залгана. // хэрвээ counter нь 5-д хуваагдаж байвал шинэ мөрнөөс хэвлэе. if ( counter % 5 == 0 ) output += "\n"; } // for давталтын төгсгөл JOptionPane.showMessageDialog( null, output, "20 Random Numbers from 1 to 6", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // програмыг дуусгах } // main функцийн төгсгөл } // RandomIntegers классын төгсгөл

Page 25: Java lecture4

L o g o

Массив

Нэг төрөлтэй хэсэг бүлэг өгөгдлийг массивт хадгалж хэрэглэж болно. Доор 12 ширхэг элементтэй массивын жишээ үзүүллээ:

Бүтэц:

Төрөл МассивНэр[ ] = new Төрөл[ тоо ];

int numbers[ ] = new int[ 12 ];

эсвэл

Төрөл[ ] МассивНэр = new Төрөл[ тоо ];

int[ ] numbers = new int[ 12 ];

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 26: Java lecture4

L o g o

Массив

Хэрвээ массивт байх элементийн тоо тодорхойгүй байгаа бол доорх байдлаар зарлаж болно:

int numbers[ ] = null;

эсвэл

int[ ] numbers = null;

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

null бол хоосон гэсэн утгатай. Обьектод null буюу хоосон гэсэн утга өгч хэрэглэдэг.

Page 27: Java lecture4

L o g o

Массив

Массивын элемент нь 0 –оос эхлэн дугаарлагддаг.

Тиймээс int c[ 3 ]; гэж зарлавал с массив нь 4 элементтэй байна (0 дугаар элементийг оруулан).

Массивын элементэд хандахдаа хаалтан дотор нь элементийнх нь дугаарыг тавьж хандана. Хаалтан дотор нь мөн бүхэл тоо буцаах арифметик илэрхийлэл байж болно.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 28: Java lecture4

L o g o

Массив ашиглах жишээ

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Бодолт №1

public Number{public static void main ( String args[ ] ){

int numbers[ 9 ] = new int[ 9 ];// 1-10 хүртэлх утгуудаа олгоё:

numbers[ 0 ] = 1;numbers[ 1 ] = 2;numbers[ 2 ] = 3;numbers[ 3 ] = 4;numbers[ 4 ] = 5;numbers[ 5 ] = 6;numbers[ 6 ] = 7;numbers[ 7 ] = 8;numbers[ 8 ] = 9;numbers[ 9 ] = 10;}}

Page 29: Java lecture4

L o g o

Массив ашиглах жишээ

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

// ¯ðãýëæëýë…// îäîî õýâëýå:

System.out.println ( numbers[ 0 ] );System.out.println ( numbers[ 1 ] );System.out.println ( numbers[ 2 ] );System.out.println ( numbers[ 3 ] );System.out.println ( numbers[ 4 ] );System.out.println ( numbers[ 5 ] );System.out.println ( numbers[ 6 ] );System.out.println ( numbers[ 7 ] );System.out.println ( numbers[ 8 ] );System.out.println ( numbers[ 9 ] );System.out.println ( numbers[ 10 ] );}}

Page 30: Java lecture4

L o g o

Массив ашиглах жишээ

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Бодолт №2

public Number{public static void main ( String args[ ] ){

int numbers[ 9 ] = new int[ 9 ]; for (int x = 0; x<=9; x++)

numbers[ x ] = x;

for (int x = 0; x<=9; x++) System.out.println ( numbers[ x ] );

}} 

Page 31: Java lecture4

L o g o

Массив ашиглах жишээ

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Бодолт №3

public Number{public static void main ( String args[ ] ){

int numbers[ 9 ] = new int[ 9 ]; for (int x = 0; x<=9; x++)

{numbers[ x ] = x;System.out.println ( numbers[ x ] );

}}}

Тайлбар: Эндээс давталт програмыг их хөнгөвчилдөг нь харагдаж байна.

Page 32: Java lecture4

L o g o

Олон хэмжээст массив

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

1 хэмжээст массив: int numbers[ ] = new int[ 3 ]; int a[ ] = {1, 2, 3};

2 хэмжээст массив: int numbers[ ][ ] = new int[3][3]; int a[][] = {{10,21,32}, {20, 21, 22 }, {30, 31, 32}}

3 хэмжээст массив: int numbers[ ][ ][ ] = new int[2][2][2]; int a[][][] = {{{1,1,1},{2,2,2},{3,3,3}},

{{4,4,4},{5,5,5},{6,6,6}}};

Page 33: Java lecture4

L o g o

Олон хэмжээст массив жишээ

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Жишээ: 10õ10 õýìæýýòýé õî¸ð õýìæýýñò ìàññèâò

ñàíàìñàðã¿é òîîí óòãóóä õèéãýýä äºðâºëæèí õýëáýðýýð õýâëý.

Page 34: Java lecture4

L o g o

Олон хэмжээст массив жишээ

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

public class ArrayDemo{public static void main(String args[])

{int a[][] = new int[10][10];for (int i=0; i<a.length; i++) for (int j=0; j<a.length; j++) {

a[ i ][ j ] = ( int ) ( Math.random( ) * 10 );System.out.print(“ “ + a[ i ][ j ]);System.out.println( );

}}

}

Page 35: Java lecture4

L o g o

Шинэ үгс

Reference: Заалт. Функцийн аргумент дамжуулах үед хэрэглэгдвэл аргументийг хаягаар нь дамжуулах гэсэн утгатай болдог.

Row: Мөр. (массивын мөр)Column: Багана. (массивын багана)index: индекс. (массивын индекс)Length: урт. (массивын элементийн

тоонд хэрэглэгдсэн)

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 36: Java lecture4

L o g o

Шинэ үгс

Method: Функц. Классын функцийг хэлдэг.Argument: Aргумент. Функцэд дамжуулагдах

хувьсагч.Parameter: Аргументтай адилхан.Array: Массив.Value: Утга.Multidimentional: Олон хэмжээст.

Multidimentional array: oлон хэмжээст массив

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 37: Java lecture4

L o g o

Шинэ үгс

principle: Зарчим. concept: зарчим, онол. Nested : Дотроо агуулсан. Nested if structure:

if ()

{ ….

if () {

….

}

}

while: Зуур. Тэгэх ингэх зуур гэсэн утгатай.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 38: Java lecture4

L o g o

Шинэ үгс

Counter: Тоолуур хувьсагч. (i = i +1 эсвэл i++) Давталт дотор хэд дэх үйлдэл хийгдэж байгааг бүртгэх зорилгоор хэрэглэгддэг.

Initial value: Анхны утга. Эхний утга.  loop: Нэг удаа давталт хийх. Давтах бичлэгүүдээ

бүгдийг нь нэг удаа ажиллуулж давталтын эхэнд буцан ирэхийг loop гэж хэлнэ.

iteration: Итераци буюу цикл. Loop-тэй ижил. enclose: хаших. Enclosed by { } => { } хаалтаар

хашигдсан.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 39: Java lecture4

L o g o

Шинэ үгс

while: Зуур. Тэгэх ингэх зуур гэсэн утгатай. Counter: Тоолуур хувьсагч. (i = i +1 эсвэл i+

+) Давталт дотор хэд дэх үйлдэл хийгдэж байгааг бүртгэх зорилгоор хэрэглэгддэг.

Initial value: Анхны утга. Эхний утга.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 40: Java lecture4

L o g o

Даалгавар

n элементтэй массивын бүх элементүүдийн нийлбэрийг ол.

n элементтэй массивын бүх сондгой элементүүдийн нийлбэрийг ол.

n элементтэй массивын бүх сондгой индекстэй элементүүдийн нийлбэрийг ол.

Массивын бүх элементийг хэвлэдэг функц бич.

Массивын i ба j-р элементийн байрыг сольдог функц бич.

Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он

Page 41: Java lecture4

L o g o

Java Programming

Улаанбаатар дээд сургууль 2011 он