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

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




        Улаанбаатар хот       2011-05-05
Хичээлийн нэр: Жава 1
Лаборатори № 3

Сэдэв:    String, Array төрөл, Консолоос өгөгдөл унших,
Зорилго: String, Array төрлийн хувьсагчтай ажиллах, String классын методуудыг
          хэрэглэх, main() функцэд аргумент дамжуулах зэргийг эзэмшүүлэх
Оноо: 0-5
Хугацаа: 7 хоног

Дасгал 1. String төрлийн хувьсагч зарлах, утга оноох, залгах

public class CreateString {

      public static void main(String[] args) {

            String str1;   //зарлах, утга нь null байна
            str1=null;      //утга оноох,
            String str2=""; //хоосон String;
            String str3="Hello World";
            String str4=str3;
            System.out.println("str1="+str1+" str3="+str3+" str4="+str4);
                                                                    //залгах

             //String-ийн уртыг олох
           int len=str3.length();
           //+ оператороор залгахад int to String хөрвүүлэлт автоматаар хийгдэнэ
           System.out.println("str3 ийн урт="+len);


      }}

Гаралт:
str1=null str3=Hello World str4=Hello World
str3 ийн урт=11

Дасгал 2. Тоон төрлийг String руу хувиргах
Тайлбар: Тоон төрлийн классууд (Integer,Double,Float, Byte, Short...) бүгдэд нь toString()
          гэдэг метод байдаг. Энэ метод нь тохирох эгэл төрлийн утгыг String болгож
          хөрвүүлдэг.

public class ConvertToString {

      public static void main(String[] args) {

              int i=100;
              double d=100.12;
              String s1=Integer.toString(i);



2
String s2=Double.toString(d);
              String s3=s1+" "+s2;
              System.out.println(s3);
              }
}

Гаралт:
100 100.12

Дасгал 3. String төрлөөс тоон төрөл руу хувиргах
Тайлбар: Integer классын parseInt() метод нь String төрлийн аргументийг int төрөл рүү
           хувиргаад буцаадаг. Түүнчлэн Double.parseDouble(), Float.parseFloat(),
           Short.parseShort() ...гэх мэтчилэн тоон төрлийн бүх л класст эгэл төрөл рүү
           String-ийг хувиргадаг методууд байна.


public class ConvertFromString {

      public static void main(String[] args) {

        //Команд мөрөөс дамжуулсан утгууд args массивт ирнэ
        //массивын уртыг length талбар нь заана
              int len=args.length;
              if(len<2){
                    System.out.println("Аргумент цөөхөн байна");
                    System.exit(1); //програмыг дуусгана
                    }
    for(int i=0; i<len; i++)
        System.out.println(args[i]); //массивын элементүүдийг давталтаар хэвлэнэ

             int num1=Integer.parseInt(args[0]); //args массивын эхний элемент
             int num2=Integer.parseInt(args[1]); //args массивын 2 дахь элемент
             int sum=num1+num2;
             System.out.println("sum="+sum);

     String s="1234.56";
     double d=Double.parseDouble(s);    //String to double хөрвүүлэлтийг хийж байна
             System.out.println(d);

       }

}

Гаралт:
120
200
sum=320
1234.56




3
Дасгал 4. substring(), charAt() методууд

public class SubCharAtExample {

      public static void main(String[] args) {
           String a = "Java is interesting.";
          System.out.println(a);
          String b = a.substring(5);    // b is interesting."
          System.out.println(b);
          String c = a.substring(5,7);// c is "is"
          System.out.println(c);
          String d = a.substring(5,a.length( ));// d is "is interesting"
          System.out.println(d);

           String str = "Usi School";
           for (int i=0; i < str.length( ); i++)
               System.out.println("Char " + i + " is " + str.charAt(i));

      }
}
Гаралт:
Java is interesting.
is interesting.
is
is interesting.
Char 0 is U
Char 1 is s
Char 2 is i
Char 3 is
Char 4 is S
Char 5 is c
Char 6 is h
Char 7 is o
Char 8 is o
Char 9 is l


Дасгал 5. split(), replaceAll() методууд

public class StringReplaceSplit {

      public static void main(String[] args) {
           String s="foo baa goo";
           String ss=s.replaceAll(" ",":");
           System.out.println(s);
           System.out.println(ss);

             String[] strMass=ss.split(":");




4
for(String str: strMass){
                   System.out.println(str);
              }
     }
}

Гаралт:
foo baa goo
foo:baa:goo
foo
baa
goo


Дасгал 6. Консолын оролт гаралт

import java.util.*;

public class ConsoleTest {

      public static void main(String[] args) {
    Scanner in=new Scanner(System.in);
    System.out.println("What is your name: ");
    String name=in.nextLine();
    System.out.println("How old are you:");
    int age=in.nextInt();
    System.out.println("Hello "+name+". Next year you will be "+(age+1));
}
}

Гаралт:
What is your name:
test
How old are you:
23
Hello test. Next year you will be 24

Дасгал 7. Массив үүсгэх

public class Array1 {

     public static void main(String[] args) {
          String[] names;
          names=new String[3];

              names[0]="usi";
              names[1]="school";
              names[2]="company";

              for(String s: names)



5
System.out.println(s);
      }
}
Гаралт:
usi
school
company

Дасгал 8. Массив нь объёкт бөгөөд, Массив төрлийн хувьсагч нь санах ой дахь хаяг
         заадаг

public class Array2 {

      public static void main(String[] args) {
           int[] a={10,20,30,40};
           System.out.println("a[0]="+a[0]);

             int[] b;
             b=a;
             b[0]=1000;

             System.out.println("a[0]="+a[0]);
      }
}

Гаралт:
a[0]=10
a[0]=1000

Дасгал 9. Массив харьцуулах

import java.util.Arrays;

public class CompareArray {

      public static void main(String[] args) {
            int[] arr1=new int[]{25,100,45};
            int[] arr2=new int[]{25,100,45};
            boolean result=Arrays.equals(arr1, arr2);
            System.out.println(result);
      }
}

Дасгал 10. Массив хуулах
import java.util.Arrays;

public class ArrayReallocationDemo {

          public static void main(String[] args) {



6
int[] data1 = new int[] { 1, 3, 5, 7, 9 };

              printArray(data1);
              int[] data2 = Arrays.copyOf(data1, 6);
              data2[5] = 11;
              printArray(data2);

              int[] data3 = Arrays.copyOfRange(data1, 2, 10);
              printArray(data3);
          }

          // print array elements
          private static void printArray(int[] data) {
            StringBuilder stringBuilder = new StringBuilder("[");
            for (int i = 0; i < data.length; i++) {
              stringBuilder.append(data[i]);
              if (i < data.length - 1)
                stringBuilder.append(", ");
            }
            stringBuilder.append("]");
            System.out.println(stringBuilder);
          }
      }

Гаралт:
[1, 3, 5, 7, 9]
[1, 3, 5, 7, 9, 11]
[5, 7, 9, 0, 0, 0, 0, 0]




Бие дааж гүйцэтгэх ажил:
Тайлбар: Random класс ашиглаж санамсаргүй тоо үүсгэдэг.
Жишээ
import java.util.Random;
...
Random generator = new Random(50); // 0-оос 50 хүртэлх тоон утга санамсаргүй байдлаар
                                         //гаргаж авах обьект үүсгэж байна.
int randomInt = generator.nextInt(); // санамсаргүй тоо гарган авч байна.



Дасгал 1.
     -Гараас өгсөн үгээс эгшиг үсэг тоолдог програм бичнэ
Дасгал 2.
     -Гараас өгсөн үгийг урвуулж хэвлэдэг програм бичнэ
Дасгал 3.


7
-Команд мөрөөс дамжуулсан String-ээс заасан индексээр тасдаад шинэ String
     үүсгэдэг програм бичнэ.
     Жишээ:
     java MySubString ThisisAlongString 2 5
     Гаралт
     Sub
Дасгал 4.
     -Команд мөрөөс хоосон зайгаар тусгаарлаж өгсөн үгүүдийг нийлүүлж нэг String
     болгодог програм бичнэ
Дасгал 5.
     -Команд мөрөөс таслалаар тусгаарлаж өгсөн String-ээс таслалаар тасдаж Массив
     үүсгээд хэвлэж харуулна.
Дасгал 6.
     -Команд мөрөөс дамжуулсан String-ийн заасан тэмдэгтийг , өгсөн тэмдэгтээр
     солидог програм бичнэ.
     Жишээ
     java MyReplace ThisisAlongString g T
     Гаралт
     ThisisAlonTStrinT
Дасгал 7.
     -Консолоос өгөгдлөө авдаг хялбар тооны машин хийнэ

Дасгал 8.
     -Гараас 5 ширхэг тоо аваад дундажийг нь хэвлэдэг програм бичнэ
Дасгал 9.
     -Гараас 10 ширхэг тоо аваад оруулсан дарааллаар нь дугаарлаж хэвлэдэг програм
     бичнэ
Дасгал 10.Санамсаргүйгээр 50 элементтэй массив үүсгээд:
     -Хамгийн ихийг олж хэвлэнэ
     -Эрэмбэлэж хэвлнэ

Дасгал 11. Адилхан хэмжээтэй 2 хэмжээст массив 2 ийг үүсгэнэ. Элементүүдийг нь
           санамсаргүйгээр үүсгэнэ.
     -3 дах массивыг өмнөх 2 массивын харгалзсан элементүүдийг нэмж
     үүсгэнэ
     -2 массивын элементүүдийн давхцсан элементүүдээс 1 хэмжээст массив үүсгэнэ
     -2 массивын элементүүдийн давхцаагүй элементүүдээс 1 хэмжээст массив үүсгэнэ
Дасгал 12.
     -Tic Tac Toe тоглоомыг 2 хэмжээст массив ашиглаж хийнэ




8

Лаборатор-3

  • 1.
    Объёкт хандалтат програмчлал-ЖаваI хичээлийн Лабораторийн ажил №3 Улаанбаатар хот 2011-05-05
  • 2.
    Хичээлийн нэр: Жава1 Лаборатори № 3 Сэдэв: String, Array төрөл, Консолоос өгөгдөл унших, Зорилго: String, Array төрлийн хувьсагчтай ажиллах, String классын методуудыг хэрэглэх, main() функцэд аргумент дамжуулах зэргийг эзэмшүүлэх Оноо: 0-5 Хугацаа: 7 хоног Дасгал 1. String төрлийн хувьсагч зарлах, утга оноох, залгах public class CreateString { public static void main(String[] args) { String str1; //зарлах, утга нь null байна str1=null; //утга оноох, String str2=""; //хоосон String; String str3="Hello World"; String str4=str3; System.out.println("str1="+str1+" str3="+str3+" str4="+str4); //залгах //String-ийн уртыг олох int len=str3.length(); //+ оператороор залгахад int to String хөрвүүлэлт автоматаар хийгдэнэ System.out.println("str3 ийн урт="+len); }} Гаралт: str1=null str3=Hello World str4=Hello World str3 ийн урт=11 Дасгал 2. Тоон төрлийг String руу хувиргах Тайлбар: Тоон төрлийн классууд (Integer,Double,Float, Byte, Short...) бүгдэд нь toString() гэдэг метод байдаг. Энэ метод нь тохирох эгэл төрлийн утгыг String болгож хөрвүүлдэг. public class ConvertToString { public static void main(String[] args) { int i=100; double d=100.12; String s1=Integer.toString(i); 2
  • 3.
    String s2=Double.toString(d); String s3=s1+" "+s2; System.out.println(s3); } } Гаралт: 100 100.12 Дасгал 3. String төрлөөс тоон төрөл руу хувиргах Тайлбар: Integer классын parseInt() метод нь String төрлийн аргументийг int төрөл рүү хувиргаад буцаадаг. Түүнчлэн Double.parseDouble(), Float.parseFloat(), Short.parseShort() ...гэх мэтчилэн тоон төрлийн бүх л класст эгэл төрөл рүү String-ийг хувиргадаг методууд байна. public class ConvertFromString { public static void main(String[] args) { //Команд мөрөөс дамжуулсан утгууд args массивт ирнэ //массивын уртыг length талбар нь заана int len=args.length; if(len<2){ System.out.println("Аргумент цөөхөн байна"); System.exit(1); //програмыг дуусгана } for(int i=0; i<len; i++) System.out.println(args[i]); //массивын элементүүдийг давталтаар хэвлэнэ int num1=Integer.parseInt(args[0]); //args массивын эхний элемент int num2=Integer.parseInt(args[1]); //args массивын 2 дахь элемент int sum=num1+num2; System.out.println("sum="+sum); String s="1234.56"; double d=Double.parseDouble(s); //String to double хөрвүүлэлтийг хийж байна System.out.println(d); } } Гаралт: 120 200 sum=320 1234.56 3
  • 4.
    Дасгал 4. substring(),charAt() методууд public class SubCharAtExample { public static void main(String[] args) { String a = "Java is interesting."; System.out.println(a); String b = a.substring(5); // b is interesting." System.out.println(b); String c = a.substring(5,7);// c is "is" System.out.println(c); String d = a.substring(5,a.length( ));// d is "is interesting" System.out.println(d); String str = "Usi School"; for (int i=0; i < str.length( ); i++) System.out.println("Char " + i + " is " + str.charAt(i)); } } Гаралт: Java is interesting. is interesting. is is interesting. Char 0 is U Char 1 is s Char 2 is i Char 3 is Char 4 is S Char 5 is c Char 6 is h Char 7 is o Char 8 is o Char 9 is l Дасгал 5. split(), replaceAll() методууд public class StringReplaceSplit { public static void main(String[] args) { String s="foo baa goo"; String ss=s.replaceAll(" ",":"); System.out.println(s); System.out.println(ss); String[] strMass=ss.split(":"); 4
  • 5.
    for(String str: strMass){ System.out.println(str); } } } Гаралт: foo baa goo foo:baa:goo foo baa goo Дасгал 6. Консолын оролт гаралт import java.util.*; public class ConsoleTest { public static void main(String[] args) { Scanner in=new Scanner(System.in); System.out.println("What is your name: "); String name=in.nextLine(); System.out.println("How old are you:"); int age=in.nextInt(); System.out.println("Hello "+name+". Next year you will be "+(age+1)); } } Гаралт: What is your name: test How old are you: 23 Hello test. Next year you will be 24 Дасгал 7. Массив үүсгэх public class Array1 { public static void main(String[] args) { String[] names; names=new String[3]; names[0]="usi"; names[1]="school"; names[2]="company"; for(String s: names) 5
  • 6.
    System.out.println(s); } } Гаралт: usi school company Дасгал 8. Массив нь объёкт бөгөөд, Массив төрлийн хувьсагч нь санах ой дахь хаяг заадаг public class Array2 { public static void main(String[] args) { int[] a={10,20,30,40}; System.out.println("a[0]="+a[0]); int[] b; b=a; b[0]=1000; System.out.println("a[0]="+a[0]); } } Гаралт: a[0]=10 a[0]=1000 Дасгал 9. Массив харьцуулах import java.util.Arrays; public class CompareArray { public static void main(String[] args) { int[] arr1=new int[]{25,100,45}; int[] arr2=new int[]{25,100,45}; boolean result=Arrays.equals(arr1, arr2); System.out.println(result); } } Дасгал 10. Массив хуулах import java.util.Arrays; public class ArrayReallocationDemo { public static void main(String[] args) { 6
  • 7.
    int[] data1 =new int[] { 1, 3, 5, 7, 9 }; printArray(data1); int[] data2 = Arrays.copyOf(data1, 6); data2[5] = 11; printArray(data2); int[] data3 = Arrays.copyOfRange(data1, 2, 10); printArray(data3); } // print array elements private static void printArray(int[] data) { StringBuilder stringBuilder = new StringBuilder("["); for (int i = 0; i < data.length; i++) { stringBuilder.append(data[i]); if (i < data.length - 1) stringBuilder.append(", "); } stringBuilder.append("]"); System.out.println(stringBuilder); } } Гаралт: [1, 3, 5, 7, 9] [1, 3, 5, 7, 9, 11] [5, 7, 9, 0, 0, 0, 0, 0] Бие дааж гүйцэтгэх ажил: Тайлбар: Random класс ашиглаж санамсаргүй тоо үүсгэдэг. Жишээ import java.util.Random; ... Random generator = new Random(50); // 0-оос 50 хүртэлх тоон утга санамсаргүй байдлаар //гаргаж авах обьект үүсгэж байна. int randomInt = generator.nextInt(); // санамсаргүй тоо гарган авч байна. Дасгал 1. -Гараас өгсөн үгээс эгшиг үсэг тоолдог програм бичнэ Дасгал 2. -Гараас өгсөн үгийг урвуулж хэвлэдэг програм бичнэ Дасгал 3. 7
  • 8.
    -Команд мөрөөс дамжуулсанString-ээс заасан индексээр тасдаад шинэ String үүсгэдэг програм бичнэ. Жишээ: java MySubString ThisisAlongString 2 5 Гаралт Sub Дасгал 4. -Команд мөрөөс хоосон зайгаар тусгаарлаж өгсөн үгүүдийг нийлүүлж нэг String болгодог програм бичнэ Дасгал 5. -Команд мөрөөс таслалаар тусгаарлаж өгсөн String-ээс таслалаар тасдаж Массив үүсгээд хэвлэж харуулна. Дасгал 6. -Команд мөрөөс дамжуулсан String-ийн заасан тэмдэгтийг , өгсөн тэмдэгтээр солидог програм бичнэ. Жишээ java MyReplace ThisisAlongString g T Гаралт ThisisAlonTStrinT Дасгал 7. -Консолоос өгөгдлөө авдаг хялбар тооны машин хийнэ Дасгал 8. -Гараас 5 ширхэг тоо аваад дундажийг нь хэвлэдэг програм бичнэ Дасгал 9. -Гараас 10 ширхэг тоо аваад оруулсан дарааллаар нь дугаарлаж хэвлэдэг програм бичнэ Дасгал 10.Санамсаргүйгээр 50 элементтэй массив үүсгээд: -Хамгийн ихийг олж хэвлэнэ -Эрэмбэлэж хэвлнэ Дасгал 11. Адилхан хэмжээтэй 2 хэмжээст массив 2 ийг үүсгэнэ. Элементүүдийг нь санамсаргүйгээр үүсгэнэ. -3 дах массивыг өмнөх 2 массивын харгалзсан элементүүдийг нэмж үүсгэнэ -2 массивын элементүүдийн давхцсан элементүүдээс 1 хэмжээст массив үүсгэнэ -2 массивын элементүүдийн давхцаагүй элементүүдээс 1 хэмжээст массив үүсгэнэ Дасгал 12. -Tic Tac Toe тоглоомыг 2 хэмжээст массив ашиглаж хийнэ 8