Лабораторийн ажил № 1

9
Объёкт хандалтат програмчлал-Жава I хичээлийн Лабораторийн ажил № 1 Улаанбаатар хот 2011-05-05

Upload: bsurenbn

Post on 20-Jun-2015

788 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Лабораторийн ажил № 1

Объёкт хандалтат програмчлал-Жава I хичээлийн

Лабораторийн ажил № 1

Улаанбаатар хот 2011-05-05

Page 2: Лабораторийн ажил № 1

Хичээлийн нэр: Жава 1Лаборатори № 1Сэдэв: JDK суулгах,Анхны жава програм, Жава хэлний өгөгдлийн эгэл төрлүүд,хувьсагч зарлах, операторуудОноо: 0-5Хугацаа: 7 хоног

1. JDK суулгах: Жава програмыг хөгжүүлэхийн тулд Java Development Toolkit буюу JDK суулгах ёстой.Ubuntu дээр дараах алхамаар суулгана.

1.1 Sun-ийн JDK-ийг дараах командаар суулгана. $ нь терминалыг заана:

$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk

1.2. Ubuntu-д OpenJDK суусан байж болох юм. Тэгвэл sun-ийн jdk-ийг ашиглана гэдгийг системд хэлэх ёстой. Дараах командыг ажиллуулна.

$ sudo update-java-alternatives -s java-6-sun

1.3 Тохиргоо хийх. JAVA_HOME, PATH, CLASSPATH зэрэг орчны хувьсагчдыг тохируулна

• JAVA_HOME – jdk-ийн суусан замыг заана• PATH орчны хувьсагч бөгөөд терминалаас оруулсан командыг хайх

директоруудыг агуулна• CLASSPATH Таны үүсгэсэн .class файлуудыг агуулах директорыг заана

Дараах үйлдлүүдийг терминалаас хийнэ:• $HOME директор дотроо java_lesson нэртэй фолдер үүсгэнэ• gedit $HOME/.bash_profile командаар .bash_profile эсвэл• gedit $HOME/.profile командаар .profile гэсэн файлуудын аль нэгийг

нээгээд дараах мөрүүдийг хамгийн сүүлд нь нэмнэ

export JAVA_HOME=/usr/lib/jvm/java-6-sunexport PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=$HOME/java_lesson

• хадгалаад, log out хийгээд эргээд log in хийж нэвтэрнэ

1.4. Шалгах• Терминалаас дараах командаар sun-jdk суусан эсэхийг шалгана

$ java – version• Гаралт

java version "1.6.0_03" Java(TM) SE Runtime Environment (build 1.6.0_03-b05)

Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)

Page 3: Лабораторийн ажил № 1

2. Анхы програм бичиж ажиллуулах

2.1 Дараах кодыг $HOME/java_lesson/Test.java файлд бичээд хадгална public class Test {

public static void main(String[] args){

System.out.println(“Hello World ”);

}}

▪ хөрвүүлж, ажиллуулах

$ cd $HOME/java_lesson

$ javac Test.java

$ java Test

▪ Гаралт

Hello World

2.2 Зарим алдаанууд

• $ javac Test.java

$ javac : command not found

• Тайлбар: JDK суугаагүй . Эсвэл PATH хувьсагчийн тохиргоо буруу гэсэн үг

• $ javac Test.java

$ javac: file not found: Test.java

• Тайлбар: Таны Test.java файлыг олохгүй байна.

• $ java Test

$ Exception in thread "main" java.lang.NoClassDefFoundError: Test

Page 4: Лабораторийн ажил № 1

Caused by: java.lang.ClassNotFoundException: java_lesson.Test

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

Could not find the main class: Test. Program will exit.

• Тайлбар: Test.class файлыг олохгүй байна. Тиймээс echo $CLASSPATH гэж шалгах хэрэгтэй. Эсвэл замыг дараах байдлаар зааж

java -cp $HOME/java_lesson Test хөрвүүлэх хэрэгтэй

Дасгал 1. Хувьсагч зарлах

/**Жава програм бүр нь хамгийн багадаа нэг public классаас бүрдэх ёстой * public классын нэр нь файлын нэртэй адил байх ёстой * */public class VarDeclare { /**Програм main() функцаас эхлэж биелэнэ*/

public static void main(String[] args) {/**i,k,l нэртэй int төрөлтэй хувьсагчид зарласан*/ int i,k,l; /**i хувьсагчид утга оноосон*/ i=90; /**i хувьсагчийн утгыг хэвлэсэн*/ System.out.println(i); /**boolean төрлийн хувьсагч зарлаад утга оноосон*/ boolean b=false; /**boolean хувьсагч b-ийн утгыг хэвлэсэн */ System.out.println(b); }

}Гаралт:90false

Дасгал 2. Өгөгдлийн эгэл төрлүүд

public class DataType1 {

public static void main(String[] args) {

/**char төрлийн утгыг ' ' дотор бичнэ*/

Page 5: Лабораторийн ажил № 1

char c2='\"';char c3='@';

/**boolean төрөл нь true эсвэл false утгын аль нэгийг авна*/boolean b1=true;boolean b2=false;

/**int төрлийн утгыг 10т,8т,16т-аар бичиж болно*/int x1=100;int x2=0123;int x3=0xAB;

/**byte төрөл нь 1 байт хэмжээтэй*/byte a1=123;/**short төрөл нь 2 байт хэмжээтэй*/short a2=32322;/**long төрөл нь 8 байт хэмжээтэй*/long l=1234456L;

/**Бутархай тоог float,double төрлөөр хадгалдаг*/float f=123.45F;double d=123.45D;

}}

Дасгал 3. Арифметик операторууд

public class ArithmeticOperators {

public static void main(String[] args) {

int result=10+20;System.out.println(result);

result=result-5;System.out.println(result);

result=result*2;System.out.println(result);

result=result/2;System.out.println(result);

result=result%2;System.out.println(result);

}}

Page 6: Лабораторийн ажил № 1

Гаралт:302550251

Дасгал 4. Харьцуулах операторууд

public class ComparisionDemo {

public static void main(String[] args) {int value1=1;int value2=2;/**Жава хэлний харьцуулах операторууд нь boolan утга буцаадаг*//**if нь Си хэлтэй адил.Ялгаа нь boolean утга үнэлдэг*/

/**== оператор нь 2 талынх нь утга тэнцүү бол true, тэнцүү * биш бол false утга буцаана * */if(value1==value2)

System.out.println("value1==value2");

/**!= оператор нь 2 талынх нь операнд ялгаатай бол true, тэнцүү * бол false утга буцаана * */if(value1!=value2)

System.out.println("value1!=value2");

/**> оператор нь урд талынх нь операнд арынх нь операндаас * их бол true, үгүй бол false утга буцаана * */if(value1>value2)

System.out.println("value1>value2");

/**< оператор нь урд талынх нь операнд арынх нь * операндаас бага бол true, үгүй бол false утга буцаана * */if(value1<value2)

System.out.println("value1<value2");

/**<= оператор нь урд талынх нь операнд арынх нь * операндаас бага буюу тэнцүү бол true, үгүй бол false утга *буцаана */ if(value1<=value2)

System.out.println("value1<=value2");

/**>= оператор нь урд талынх нь операнд арынх нь * операндаас их буюу тэнцүү бол true, үгүй бол false утга

Page 7: Лабораторийн ажил № 1

*буцаана */if(value1>=value2)

System.out.println("value1>=value2");}

}

Гаралт:value1!=value2value1<value2value1<=value2

Дасгал 5. Нөхцөлт Оператор

public class ConditionalOperators {

public static void main(String[] args) {int value1=1;int value2=2;

/** && оператор нь хоёр нөхцөл хоёул үнэн бол true утга * буцаана. Аль нэг нь худал бол false утга буцаана* */

if((value1==1) && (value2==3))System.out.println("value1 is 1 AND value2 is 2");

/** || оператор нь хоёр нөхцөлийн зөвхөн нэг нь үнэн байхад true * утга буцаана * */if((value1==1) || (value2==3))

System.out.println("value1 is 1 OR value2 is 2");}

}Гаралт:value1 is 1 AND value2 is 2value1 is 1 OR value2 is 2

Дасгал 6. Unary операторууд

public class UnaryDemo {

public static void main(String[] args) { int result=+1; System.out.println(result); result--; System.out.println(result); result++; System.out.println(result);

Page 8: Лабораторийн ажил № 1

result=-result; System.out.println(result); boolean success=false; System.out.println(success); System.out.println(!success);}

}

Гаралт101-1falsetrue

Дасгал 7. Эгэл төрлийг хувиргахpublic class PrimitiveCast {

public static void main(String[] args) {/**Бага хэмжээтэй төрлөөс их руу хувиргахад

* cast хийдэггүй*/int a=100;

long l=a; /**Бутархай төрлөөс бүхэл тоон төрөл руу хувиргахад * (int) байдлаар cast хийдэг * */ float f=123.4F; a=(int)f; System.out.println(a); /**Доорхи илэрхийллийн үр дүн int төрөлтэй гарна * тиймээс cast хийх хэрэгтэй * */ byte b=5; byte c=7; byte d=(byte)(b+c);}

}

Гаралт:123

Page 9: Лабораторийн ажил № 1

БИЕ ДААЖ ГҮЙЦЭТГЭХ АЖИЛДасгал 1. Тэгш өнцөгтийн талууд өгөгдсөн үед талбай болон приметрийг

тооцоолж хэвлэдэг програм бичнэДасгал 2. 2 тоог тэнцүү эсвэл аль нь их вэ гэдгийг олдог програм бичнэ.Дасгал 3. Өгсөн 1 оронтой бүхэл тоог 2 тийн тоо рүү хөрвүүлдэг програм бичнэ.Дасгал 4. Оюутны дүн тоогоор өгөгдсөн бол үсгээр хэвлэдэг програм бичнэ.Дасгал 5. Целсийн градусыг Фарангейт рүү хөрвүүлсэн програм бичнэДасгал 6. Хэрвээ Болд цагт 2500 төгрөгийн цалинтай бол сарын цалинг бодож

гаргана уу.