Homework 3: Kiểu dữ liệu mảng trong Java (FBU-13.08.21)

 Homework 3: Kiểu dữ liệu mảng trong Java (FBU-13.08.21)

Bài 1: Viết chương trình
-Nhập vào từ bàn phím điểm thi của n sinh viên môn LTTQ Java (29<n<71)
-Đếm số sinh viên có điểm F
-Tính tỷ lệ phần trăm sinh viên đạt điểm từ B trở lên
-Xác định vị trí của sinh viên có điểm cao nhất trong danh sách
-Sắp xếp điểm giảm dần.

--------------------- 

/*
Bài 1: Viết chương trình
-Nhập vào từ bàn phím điểm thi của n sinh viên môn LTTQ Java (29<n<71)
-Đếm số sinh viên có điểm F
-Tính tỷ lệ phần trăm sinh viên đạt điểm từ B trở lên
-Xác định vị trí của sinh viên có điểm cao nhất trong danh sách
-Sắp xếp điểm giảm dần.
 */
package homework3_1_130821;
import java.util.Scanner;
/**
 *
 * @author thanhtran
 */
public class Homework3_1_130821 {
    // khai bao mang chua diem thi
    static float[] diemThi=new float[70]; 
    static int n; // so sinh vien
    static Scanner inp =new Scanner(System.in);
    // Nhap diem
    static void NhapDiem(){
        System.out.println("1. NHAP DIEM CHO SINH VIEN: ");
        System.out.println(" - Nhap so sinh vien: ");
        do{
            System.out.print("\n n= ");
            n= inp.nextInt();
            if (n<=29||n>=71)
                System.out.print("\n Nhap lai n!");
        }while (n<=29|| n>=71);
        
        System.out.println(" - Nhap diem cho sinh vien: ");
        for(int i=0;i<n;i++)
        {
            do{
                System.out.print("\n - Sinh vien thu "+(i+1)+": ");
                diemThi[i]= inp.nextFloat();
                if (diemThi[i]<0||diemThi[i]>10)
                    System.out.print("\n Nhap lai diem!");
        }while (diemThi[i]<0||diemThi[i]>10);
        }
    }
    // Dem sinh vien diem F
    static void DemDiemF(){
        int dem =0; 
        for(int i=0;i<n;i++)
            if(diemThi[i]<4.0) dem++;
        System.out.print("\n 2. SO SINH VIEN CO DIEM F: "+ dem);
    }
    
    // Tinh ty le sinh sien dat diem tu B
    static void TyLeDiemB(){
        float tyLe=0;
        int dem=0;
         for(int i=0;i<n;i++)
            if(diemThi[i]>=7.0) dem++;
         tyLe=((float)dem/n)*100;
         
        System.out.print("\n 3. TY LE SINH VIEN DAT DIEM B TRO LEN: "+ tyLe+"%");
    }
    // Xac dinh vi tri sinh vien co diem cao nhat trong danh sach
    static void ViTriDiemMax(){
        // tim diem max
        float max = diemThi[0];
        for(int i=1;i<n;i++)
            if(max<diemThi[i]) max=diemThi[i];
        System.out.print("\n 4. VI TRI CAC SINH VIEN CO DIEM CAO NHAT: ");
        for(int i=0;i<n;i++)
            if(diemThi[i]==max) 
                System.out.print((i+1)+"; ");
    }
    // Sap xep diem giam dan
    static void SapXepDiem(){
        System.out.println("\n 5. SAP XEP DIEM GIAM DAN: ");
        for(int i=0;i<n-1;i++)
            for(int j=i+1;j<n;j++)
                if(diemThi[i]<diemThi[j])
                {
                    float d=diemThi[i];
                    diemThi[i]= diemThi[j];
                    diemThi[j]=d;
                }
        for(int i=0;i<n;i++)
            System.out.println(diemThi[i]);
    }
    
    /* Phuong thuc chinh */
    
    public static void main(String[] args) {
        
        NhapDiem();
        DemDiemF();
        TyLeDiemB();
        ViTriDiemMax();
        SapXepDiem();
    }
    
}

---------------------

Bài2: Viết chương trình tính
-Nhập vào 2 ma trận
vuông a, b có kích thước n (2<n<10) chứa các số nguyên
-Tính c = a+b, d = a*b
-Tính tổng đường chéo chính của ma trận c
-Kiểm tra tính đối xứng của ma trận d
-Tính định thức của ma trận c

--------------------- 

/*
Bài2: Viết chương trình tính
-Nhập vào 2 ma trận vuông a, b có kích thước n (2<n<10) chứa các số nguyên
-Tính c = a+b, d = a*b
-Tính tổng đường chéo chính của ma trận c
-Kiểm tra tính đối xứng của ma trận d
-Tính định thức của ma trận c
 */
package homework3_2_130821;
import java.util.Scanner;

public class Homework3_2_130821 {
    // khai bao mang 2 chieu
    static int [][] a=new int[9][9],b=new int[9][9],c=new int[9][9],d=new int[9][9];
    static int n; // kich thuoc ma tran
    
    // Nhap 2 ma tran
    static void NhapMaTran(){
        Scanner inp =new Scanner(System.in);
        System.out.println("1. NHAP MA TRAN a, b: ");
        System.out.println(" - Nhap kich thuoc ma tran: ");
        do{
            System.out.print("\n n= ");
            n= inp.nextInt();
            if (n<=2||n>=10)
                System.out.print("\n Nhap lai n!");
        }while (n<=2|| n>=10);
        
        // nhap ma tran a
        System.out.println(" - Nhap ma tran a: ");
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
            {
                System.out.print("\n a["+i+"]["+j+"]=");
                a[i][j]=inp.nextInt();
            }
        // in ma tran a
        System.out.println(" In ma tran a: ");
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
                System.out.print(a[i][j]+ "\t");
            System.out.print("\n");
        }
        
        // nhap ma tran b
         System.out.println(" - Nhap ma tran b: ");
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
            {
                System.out.print("\n b["+i+"]["+j+"]=");
                b[i][j]=inp.nextInt();
            }
        // in ma tran a
        System.out.println(" In ma tran b: ");
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
                System.out.print(b[i][j]+ "\t");
            System.out.print("\n");
        }
        
        
    }
    // tinh c, d
    static void TinhC_D(){
        System.out.println("2. TINH MA TRAN C, D: ");
        // tinh c
         for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                c[i][j]= a[i][j]+b[i][j];
        
        // in ma tran c
        System.out.println(" In ma tran c = a+b: ");
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
                System.out.print(c[i][j]+ "\t");
            System.out.print("\n");
        }
        
        // tinh d
        for(int i = 0; i<n; i++)
            for(int k = 0; k<n; k++) {
                d[i][k]=0;
                for(int j = 0; j<n; j++)
                    d[i][k] = d[i][k]+a[i][j]*b[j][k];
            }

        
        // in ma tran d
        System.out.println(" In ma tran d = axb: ");
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
                System.out.print(d[i][j]+ "\t");
            System.out.print("\n");
        }
    }
    
    // tinh tong duong cheo cua c
    static void TongDC_cuaC(){
        int tong=0;
        for(int i=0;i<n;i++)
            tong=tong+c[i][i];
        System.out.println("3. TONG DUONG CHEO CHINH CUA C: ");
    }
    
    // kiem tra tinh doi xung cua d
    
    static void DiemTraTinhDX_cuaD()
    {   System.out.println("4. KIEM TRA TINH DOI XUNG CUA D: ");     
        int test =0;
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                if(d[i][j]!=d[j][i])
                {
                    test= 1; 
                    break;
                }
        if(test==0)
            System.out.println(" Ma tran D doi xung. ");
        else
            System.out.println(" Ma tran D KHONG doi xung. ");
        
    
    }
    // tinh dinh thuc cua c
    static void DinhThucC(){
        
        int [] b1=new int[9], c1=new int[9];;
        float h,det=1;
        int i,j,k,dem=0,kt=0;
        for(i=0;i<n-1;i++)
        {
            if(c[i][i]==0)
            {
                kt=0;
                for(j=0;j<n;j++)
                if(c[i][j]!=0)
                {
                    for(k=0;k<n;k++)
                    {
                        // Doi cot j voi cot i
                        c1[k]=c[k][i];
                        c[k][i]=c[k][j];
                        c[k][j]=c1[k];
                    }
                    dem++;// dem so lan doi cot
                    kt++;// Kiem tra xem co so 0 o dong i cot j
                    break;
                }
            }
            if(kt==0) 
                det = 0;
            b1[i]=c[i][i];
            for(j=0;j<n;j++) 
                c[i][j]= c[i][j]/b1[i];//tao so 1 o dong i,cot i
                for(j=i+1;j<n;j++)
                {
                    h=a[j][i];
                    for(k=0;k<n;k++) 
                        c[j][k]=c[j][k]-(int)h*c[i][k];//lay dong thu j-h*dong i
                }
        }
        b1[n-1]=c[n-1][n-1];
        for(i=0;i<n;i++) 
            det=det*b1[i];// Nhan cac so da lay ra ngoai dinh thuc
        if(dem%2!=0) 
            det=-det;
     
        
        
        System.out.println("5. DINH THUC CUA C: "+ det);
    }
    
    /* phuong thuc main */
        
    public static void main(String[] args) {
    
        NhapMaTran();
        TinhC_D();
        TongDC_cuaC();
        DiemTraTinhDX_cuaD();
        DinhThucC();
    }
    
}

---------------------

>> Xem thêm các bài tập khác