27
L o g o Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он Класс, функцын тухай багш Б.Ганзориг

Pl lecture6

Embed Size (px)

Citation preview

Page 1: Pl lecture6

L o g o

Програмчлалын хэл

Улаанбаатар Их Сургууль 2013 он

Класс, функцын тухайбагш Б.Ганзориг

Page 2: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Агуулга

Math классын тухай, хэрэглээ3

Классын хувьсагчид4

1

2

Байгуулагч функцын тухай5

Жишээ, шинэ үгс болон даалгавар6

Scanner классын тухай, хэрэглээ

JTextArea классын тухай, хэрэглээ

Page 3: Pl lecture6

L o g o

Scanner класс

Хэрэглэгчээс утга авах, файлаас авах зэрэг чадвартай

import java.util.Scanner

Гараас оруулах утгаа консол ашиглаж оруулдаг

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Page 4: Pl lecture6

L o g o

Scanner класс

Утгаа авахдаа утгын төрлөөс хамаарч доорх функцүүдийн аль нэгийг дуудна.next() String утга буцаана.nextInt() intnextByte() bytenextBoolean() booleannextFloat() floatnextDouble() doublenextLine() тэмдэгт мөрnextShort() short

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Page 5: Pl lecture6

L o g o

Scanner класс (жишээ)

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Page 6: Pl lecture6

L o g o

Scanner класс

Оролтыг Ctrl+z дарж дуусгаж болно.hasNext() функц нь дахин оролт байгаа

эсэхийг шалгана. Ctrl + z дарсан бол энэ функц нь false утга буцаана.

while(input.hasNext()){

grade = input.nextInt();total += grade;

}

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Page 7: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Math класс

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

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

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

Math.sqrt( 900.0 )

Page 8: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Math класс

Маth классын зарим функцүүдээс жагсаавал:функц Тайлбар Жишээ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 9: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Math класс жишээ

Page 10: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

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

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

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

Page 11: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

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

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

Жишээ:(int) ( Math.random() * 6 ) нь 0-6 хоорондох санамсаргүй нэг утга буцаана.

Page 12: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

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

Page 13: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

JTextArea класс

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

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

Page 14: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

JTextArea класс

Ашиглахын тулд

import javax.swing.JTextArea; эсвэл import javax.swing.*; гэж оруулж өгнө.

Обьектийг нь зарлана:

JTextArea myText = new JTextArea();

Текстийг нь setText функцээр нь оруулж өгдөг.

myText.setText (“Hello class!”);

Page 15: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

JTextArea класс ашигласан жишээ

Page 16: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

JTextArea класс ашигласан жишээ үр дүн

Page 17: Pl lecture6

L o g o

Програмчлалын хэл

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

Улаанбаатар Их Сургууль 2013 он

Page 18: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

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

Page 19: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Классын хувьсагчид

Классын хувьсагчид нь уг классын бүх функцүүдэд ашиглагдаж болно.

Классын хувьсагчдийг классын эхэнд функцүүдийн өмнө зарладаг.

Классын хувьсагчид нь хандалтын тодорхойлогчтой байдаг:

• Public• Private• protected

Page 20: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Классын хувьсагчид

Public хувьсагч: ийм хувьсагчид програмд оролцож байгаа бүх классын функцүүд хандаж чадна.

• public String name;Private хувьсагч: ийм хувьсагчид зөвхөн

уг классын л функцүүд хандаж чадна.• private int age;

Protected хувьсагч: ийм хувьсагчид уг классын функцүүд болон түүнээс удамшсан классын функцүүд хандаж чадна.

• protected int x;

Page 21: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Классын байгуулагч функц (constructor)

Классын обьектийг үүсгэн анхны утгыг нь олгоход хэрэглэгдэнэ.

Обьектийг үүсгэх үед дуудагддаг.Класс дотор зарлагдана.Нэр нь классын нэртэй адилхан

байна.Аргумент авч болох боловч утга

буцаадаггүй.

Page 22: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Классын байгуулагч функц (constructor)

Нэг класст олон байгуулагч функц байж болно.

(Дахин тодорхойлолт= overloading)

new ClassName( argument1, argument2, …, arugmentN );

new нь шинэ обьект үүсгэж байгааг илтгэнэ. ClassName нь ямар төрлийн обьект үүсгэж

байгааг заана. Аргументууд нь классын энэ байгуулагч функцэд

дамжуулагдана.• TestClass myObject = new TestClass();• TestClass myObject = new TestClass(1, 5, “test”);

Page 23: Pl lecture6

L o g o

Java сан (Package)

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

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

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

Жишээ нь:

import javax.swing.JOptionPane;

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Page 24: Pl lecture6

L o g o

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

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

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

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

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

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

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Page 25: Pl lecture6

L o g o

Шинэ үгс

Abstract class: Хийсвэр класс. Функцүүд нь кодгүй байна. Удамшсан классуудад нь ямар функц заавал байх ёстойг зааж өгдөг.

Abstract method: Абстракт класс дотор байх функцийн тодорхойлолт. Энэ функц нь кодгүй байдаг бөгөөд абстракт классаас удамшсан класс нь түүнийг абстракт функцүүдийг дахин тодорхойлох ёстой.

implementation: Код бичих процессийг implementation гэдэг.

protected: Уг классын болон түүнээс удамшсан бусад классын функцүүдээс хандаж болох хувьсагч болон функц.

Garbage collection: Java нь ашиглагдахгүй болсон обьектуудыг санах ойгоос олж түүний finalize функцийг дуудан уг обьектийг санах ойгоос чөлөөлдөг. Энэ процессийг хог цуглуулалт буюу garbage collection гэдэг.

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Page 26: Pl lecture6

L o g o

Програмчлалын хэл Улаанбаатар Их Сургууль 2013 он

Даалгавар

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

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

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

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

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

Page 27: Pl lecture6

L o g o

Улаанбаатар Их Сургууль 2013 он

Програмчлалын хэл