[Lập trình hướng đối tượng với Java] Ví dụ: Bài toán quản lý điểm [210916]

[Lập trình hướng đối tượng với Java] Ví dụ: Bài toán quản lý điểm 

Xây dựng Project quản lý điểm cho sinh viên.
Yêu cầu: In ra thông tin sinh viên
- Họ tên
- Lớp
- Tuổi
- Điểm tổng kết
- Điểm chữ
(Biết rằng, sinh viên đã có các điểm năm 1,2,3)

* Lưu ý:
Tạo Project QLDiem
Code:

// Class SinhVien
package qldiem; 
import java.util.Scanner; 
public class SinhVien {
    // thuộc tính
    private String hoTen,tenLop;
    private int tuoi;
    private float diem1,diem2,diem3;
 
    // phương thức NhapTT
    void NhapTT(){
        Scanner inp=new Scanner(System.in);
        System.out.print("\n Ho ten: ");      
        hoTen=inp.nextLine();
        System.out.print("\n Ten lop: ");
        tenLop=inp.nextLine();
        System.out.print("\n Tuoi: ");
        tuoi=inp.nextInt();
        System.out.print("\n Diem nam 1: ");
        diem1=inp.nextFloat();
        System.out.print("\n Diem nam 2: ");
        diem2=inp.nextFloat();
        System.out.print("\n Diem nam 3: ");
        diem3=inp.nextFloat();
    } 
    // Tính điểm
    private float TinhDiem(){
        return (diem1+diem2+diem3)/3;
    } 
    // Điểm chữ
    private char DiemChu(){
        char dChu;
        float dtb=TinhDiem();
        if (dtb<4) dChu='F';
        else if (dtb<5.5) dChu='D';
            else if (dtb<7) dChu='C';
                else if (dtb<8.5) dChu='B';
                    else dChu='A';
        return dChu;
    }
    // In thông tin
    void InTT(){
        System.out.println("\n "
                + "* IN THONG TIN SINH VIEN: "
                + "\n Ho ten: "+ hoTen
                + "\n Lop:" + tenLop
                + "\n Tuoi:" + tuoi
                + "\n Diem trung binh: "+TinhDiem()
                + "\n Diem chu: "+DiemChu());             
    }
}

// Class QLDiem (class chính)
package qldiem;
public class QLDiem {

    public static void main(String[] args) {
      // khai bao doi tuong
      SinhVien toto=new SinhVien();
      toto.NhapTT();
      toto.InTT();
   
    }
 
}

tailieucntt.org



----------


Cùng bạn tự học CNTT - tailieucntt.org

[Tự học lập trình Android] Bài 6: Tìm hiểu về vòng đời của ứng dụng Android (Application life cycle)

Tìm hiểu về vòng đời của ứng dụng Android (Application life cycle)
1) Applications là gì ?
Mỗi một Android Project khi bạn biên dịch thành công thì sẽ được đóng gói thành tập tin .apk, tập tin .apk được gọi là một ứng dụng (application)
2) Activities là gì ?
- Trong một ứng dụng (application) sẽ có một hoặc nhiều Activity (có thể hiểu như là các màn hình tương tác giống như Form trong VS.Net).
- Mỗi một Activity này sẽ có một vòng đời riêng độc lập hoàn toàn với các Activity khác. Việc hiểu rõ vòng đời của Activity là rất quan trọng trong việc xử lý thông tin.
- Mỗi một Activity muốn được triệu gọi trong ứng dụng thì bắt buộc nó phải được khai báo trong file Manifest.XML
3) Activity Stack là gì?
- Tương tự như các ngôn ngữ lập trình khác, Activity Stack hoạt động theo cơ chế LIFO (Last In Firrst Out)
- Mỗi một Activity mới được mở lên nó sẽ ở bên trên Activity cũ, để trở về Activity thì bạn chỉ cần nhấn nút “Back” để trở về hoặc viết lệnh. Tuy nhiên nếu bạn nhấn nút "Home" rồi thì sẽ không thể dùng nút “Back” để quay lại màn hình cũ được.
Hình 1: Acitivity stack

- Có 2 kiểu mở Activity mới:
  + Mở Activity mới lên làm che khuất toàn bộ Activity cũ (không nhìn thấy Activity cũ): sảy ra sự kiện onPause rồi onStop đối với Activity cũ
  + Mở Activity mới lên làm che khuất một phần Activity cũ (vẫn nhìn thấy Activity cũ): Sảy ra sự kiện onPause với Activity cũ.
- Khi quay trở về Activity cũ thì sau khi thực hiện xong các hàm cần thiết, chắc chắn nó phải gọi hàm onResume để phục hồi lại trạng thái ứng dụng
- Như vậy ta thường lưu lại trạng thái của ứng dụng trong sự kiện onPause và đọc lại trạng thái ứng dụng trong sự kiện onResume
4) Tasks là gì?
- Task là khả năng thực hiện một công việc nào đó giữa các ứng dụng với nhau, cụ thể là các Activity
- Ví dụ bạn đang mở chương trình quản lý BlackList, trong chương trình này cho phép mở danh bạ để đưa vào danh sách đen. Lúc đó chương trình bạn sẽ gọi Activity của ứng dụng danh bạ, sau khi lấy xong lại quay trở về ứng dụng của bạn. Nhớ là 2 ứng dụng này hoàn toàn không liên quan gì tới nhau cả.

Hình 2: Task

5) Life Cycle States là gì?
Với mỗi Activity thường vòng đời có 3 trạng thái sau:
1- Running (đang kích hoạt)
2- Paused (tạm dừng)
3- Stopped (dừng – không phải Destroyed)
Hình 3: Life Cycle 


Trong đó:
1- Running (đang kích hoạt): Khi màn hình là ForeGround (Activity nằm trên cùng ứng dụng và cho phép người sử dụng tương tác)
2- Paused (tạm dừng): Activity bị mất trọng tâm (focus) nhưng mà vẫn nhìn thấy được Activity này (Ví dụ bạn mở một Activity mới lên dưới dạng Dialog). Trường hợp này nó vẫn có khả năng bị hệ thống tự động hủy trong tình huống bộ nhớ quá ít.
3- Stopped (dừng – không phải Destroyed): Activity mất focus và không nhìn thấy được (ví dụ bạn mở một Activity mới lên mà Full màn hình chẳng hạn). Trong trường hợp này nó có thể bị hệ thống hủy bất kỳ tình huống nào.
Hình 4: Application's Lifie cycle

* Như vậy cả Paused hay Stopped đều có khả năng bị Destroyed (hủy) khi bộ nhớ cần cho việc khác ưu tiên hơn.


6. Phân biệt Visible Lifetime và Foreground Lifetime
Hình 5: Phân biệt Visible Lifetime và Foreground Lifetime

- Visible Lifetime:
+ sảy ra từ sau khi gọi onStart => cho tới lúc gọi onStop: trong trường hợp này chúng ta vẫn có thể thấy màn hình Activity (có thể tương tác khi nó là foreground, không tương tác được khi nó không phải foreground như đã giải thích ở trên)

- Foreground Lifetime:
+ Sảy ra từ khi gọi onResume => cho tới lúc gọi onPause: trong suốt thời gian này Activity luôn nằm ở trên cùng và chúng ta có thể tương tác được với nó
7. Ví dụ demo
- Bạn tạo một ứng dụng tên là : CheckLifeTimeCycle với cấu trúc như hình dưới đây:

Hình 6: Project
- Double Click vào MainActivity.java:
- Sau đó bấm chuột phải vào màn hình Coding/ chọn Source/ chọn Override / Implement Methods… :

Hình 7

- Màn hình Override / Impement Methods sẽ hiển thị ra như bên dưới, chọn các hàm: onStart,onRestart, onResume, onPause, onStop, onDestroy…: rồi bấm OK


Hình 8

Coding:

Hình 9

Ở trên bạn thấy dòng lệnh trong hàm onResume:
protected void onResume() {
Toast.makeText(this,”onResume”, Toast.LENGTH_SHORT)
.show();
super.onResume();
}

Thực thi (run)
- Bây giờ bạn chạy ứng dụng vào Máy ảo Android và thực hiện một số thao tác: Mở một ứng dụng khác, mở Menu, nhấn nút Back, nhấn nút Home … quan sát hiện tượng bạn sẽ hiểu được cách vận hành các hành này.
- Bạn cần phải hiểu rõ về Life time cycle để giúp ích cho việc quản lý ứng dụng

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

[Tự học lập trình C/C++] Bài 6: Cấu trúc lặp while

---------------------------------
* TÓM TẮT LÝ THUYẾT
---------------------------------

1. Cấu trúc lặp while 
  Chức năng của nó đơn giản chỉ là lặp lại [Khối lệnh] khi điều kiện [biểu thức điều khiển] còn thoả mãn.

2. Cú pháp  
  while (biểu thức điểu khiển)  
  {  
  Khối lệnh;
  }
 
  Trong đó:
  - biểu thức điểu khiển là biểu thức logic.  
  - [Khối lệnh] còn thực hiện khi [biểu thức điều khiển] còn đúng.  
  - Trong [khối lệnh] cần có sự tác động để [biểu thức điều khiển] sai.
 
 

---------------------------------
** VÍ DỤ
---------------------------------

Ví dụ 1: 

+ Yêu cầu: Tính tổng các số từ 1 đến n, với n nhập vào từ bàn phím

+ Code:

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
int n;
// nhap n
cout<<"\n n= ";
cin>>n;
// tinh tong
int s=0,i=0;
while(i<=n){
s=s+i;
i++;
}

// in ket qua
cout<<"\n Tong = "<<s;
return 0;
}

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

Ví dụ 2: 

+ Yêu cầu: Đếm số chẵn nhỏ hơn n, với n nhập vào từ bàn phím.

+ Code:

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
int n;
// nhap n
cout<<"\n n= ";
cin>>n;
// dem so chan
int dem=0,i=0;
while (i<=n){
if (i%2==0) dem++;
i++;
}

// in ket qua
cout<<"\n Ket qu = "<<dem;
return 0;
}

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

Vi dụ 3: 

+ Yêu cầu: In ra màn hình tất cả số nguyên gồm 4 chữ sao cho tổng các chữ số bằng 10.

+ Code:

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
cout<<"\n In ket qua: ";
int i=1000;
while (i<=9999)
{
if(i%10+(i/10)%10+(i/100)%10+i/1000==10)
cout<<i<<" ; ";
i++;
}
return 0;
}

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

Ví dụ 4: 

+ Yêu cầu: In ra màn hình bảng cửu chương

+ Code:

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
cout<<"\n In bang cuu chuong: \n";
int i=1;
while (i<=9)
{
int j=1;
while (j<9){
cout<<i<<"x"<<j<<"= "<<i*j<<" ; ";
j++;
}
cout<<"\n";
i++;
}
return 0;
}

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

Ví dụ 5: 

+ Yêu cầu: In ra màn hình tất cả số nguyên tố nhỏ hơn 1000.

+ Code:

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
cout<<"\n In so nguyen to nho hon 1000: \n";
int i=1;
while (i<=1000)
{
int test=0,j=2;
while (j<i){
if(i%j==0) {
test=1;
break;
}
j++;
}
if(test==0) cout<<i<<" ; ";
i++;
}
return 0;
}

------------------------
Xem bài khác:

[C++ / Hàm đệ quy] Bài tập hàm Đệ quy (04/04/2016)

[C++ / Hàm đệ quy] Bài tập hàm Đệ quy (04/04/2016) - Chương trình viết bằng Dev C++


Bài 1: Tính S1=1+3+5+...+(2n+1) (với 1<= n<=2015)
#include<iostream>
#include<conio.h>
using namespace std;
// bien toan cuc
int n;
// nhap n
void Nhap_n(){
    do{
        cout<<"\n n= "; cin>>n;
        if(n<1||n>2015)
            cout<<"\n Nhap lai n!";
    }while (n<1||n>2015);
}

// tinh tong s1=1+3+5+...+(2n+1) - de quy
long S1(int n){
    if (n==1)  
        return 3;
    return ((2*n+1) + S1(n-1));
}

int main(){
    Nhap_n();
    cout<<"\n S1= "<<S1(n);

    getch();
    return 0;
}


-----------------------------------------
 Bài 2: S2= x/1+x^2/2! +...+x^n/n! (với 1<=x<=3; 1<=n<=5)
 #include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
// bien toan cuc
int n;
float x;

// nhap n
void Nhap_n(){
    do{
        cout<<"\n n= "; cin>>n;
        if(n<1||n>5)
            cout<<"\n Nhap lai n!";
    }while (n<1||n>5);
}

// nhap x
void Nhap_x(){
    do{
        cout<<"\n x= "; cin>>x;
        if(x<1||x>3)
            cout<<"\n Nhap lai x!";
    }while (x<1||x>3);
}

// Tinh giai thua (de quy)
long GiaiThua(int n){
    if(n==1)  
        return 1;
    return n*GiaiThua(n-1);
}

// tinh tong S2= x/1+x^2/2! +...+x^n/n! - de quy
float S2(int n, float x){
    if (n==1)  
        return x;
    return ((float)pow(x,n)/GiaiThua(n) + S2(n-1,x));
}

// ham main
int main(){
    Nhap_n();
    Nhap_x();
    cout<<"\n Ss= "<<S2(n,x);
    getch();
    return 0;
}
-----------------------------------------
 Bài 3: s3=2!+4!+...+n! (với n là số chẵn; 2<=n<=10)

#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
// bien toan cuc
int n;


// nhap n
void Nhap_n(){
    do{
        cout<<"\n n= "; cin>>n;
        if(n<2||n>10||n%2!=0)
            cout<<"\n Nhap lai n (n la so chan thoa man 2<=n<=10)!";
    }while (n<2||n>10||n%2!=0);
}



// Tinh giai thua (de quy)
long GiaiThua(int n){
    if(n==1)   
        return 1;
    return n*GiaiThua(n-1);
}

// tinh tong s3=2!+4!+...+n! - de quy
long S3(int n){
    if (n==2)   
        return 2;
    return (GiaiThua(n)+S3(n-2));
}

// ham main
int main(){
    Nhap_n();
    cout<<"\n S3= "<<S3(n);
    getch();
    return 0;
}
-----------------------------------------
 Bài 4: S4=x^2/1! + x^4/3! +... x^(2n)/(2n-1)!


#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
// bien toan cuc
int n;
float x;

// nhap n
void Nhap_n(){
    do{
        cout<<"\n n= "; cin>>n;
        if(n<1||n>101)
            cout<<"\n Nhap lai n!";
    }while (n<1||n>101);
}

// nhap x
void Nhap_x(){
    do{
        cout<<"\n x= "; cin>>x;
        if(x<1|x>3)
            cout<<"\n Nhap lai x!";
    }while (x<1||x>3);
}

// Tinh giai thua (de quy)
long GiaiThua(int n){
    if(n==1)   
        return 1;
    return n*GiaiThua(n-1);
}

// tinh tong s4=x^2/1! + x^4/3! +... x^(2*n)/(2*n-1) - de quy
float S4(int n, float x){
    if (n==1)   
        return x*x;
    return ((float)pow(x,2*n)+1/GiaiThua(2*n-1) + S4(n-1,x));
}

// ham main
int main(){
    Nhap_n();
    Nhap_x();
    cout<<"\n S4= "<<S4(n,x);
    getch();
    return 0;
}


 http://lap-trinh-may-tinh.blogspot.com/

[Tự học lập trình C/C++] Bài 9: Dữ liệu kiểu mảng (array)

---------------------------------
* TÓM TẮT LÝ THUYẾT
---------------------------------

 1. Khái niệm mảng 
  Mảng là tập các biến có cùng kiểu, cùng tên, khác nhau ở chỉ số (vị trí). 
 
 2. Khai báo mảng
   - Mảng 1 chiều 
  <kiểu dữ liệu> <tên mảng> [Số phần tử tối đa trong mảng]; 
 
  Ví dụ: 
  int a[100]; // mảng a chứa 100 số nguyên 
  float b[10]; // mảng b chứa 10 số thực 
  char c[]="Chao ban!"; // mảng c chứa các ký tự 
  int m[]={2,4,6,8}; // mảng m chứa 4 số chắn. 
 
  - Mảng nhiều chiều (thường dùng mảng 2 chiều) 
  <kiểu dữ liệu> <tên mảng> [dong][cot]; 
 
  Trong đó: 
    dong: Số phần tử tối đa trong mảng dòng 
    cot: Số phần tử tối đa trong mảng cot.
 
  Ví dụ: 
   int m[5][5]; // khai báo mảng 2 chiều kích thước 5x5.
   
 3. Sử dụng mảng 
  - Mỗi phần tử của mảng (<tên mảng>[vị trí]) được coi như một biên thông thường. 
  - Thường sử dụng cấu trúc lặp để xử lý mảng.


---------------------------------
** VÍ DỤ
---------------------------------

Ví dụ 1: 

+ Yêu cầu: Nhập vào dãy số nguyên có n số (2<n<100), in ra màn hình dãy số vừa nhập.

+ Code:


#include <iostream>
#include <conio.h>

using namespace std;

int main() {
    // khai bao mang a co kich thuoc 100
int a[100];
// khai bao n (so phan tu thuc te cua mang)
int n;
    // nhap so phan tu cua mang
    do{
    cout<<"\n Nhap so phan tu cua mang: ";
    cin>>n;
     if(n<=2||n>=100)
    cout<<"\n Nhap lai n !";    
    }while (n<=2||n>=100);
    // Nhap mang
    for(int i=0;i<n;i++)
    {
    cout<<"\n a["<<i<<"]= "; cin>>a[i];
    }
   
    // In mang
    cout<<"\n In mang : ";
for(int i=0;i<n;i++)
    {
    cout<<a[i]<<"; ";
    }
   return 0;
}

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

Ví dụ 2: 

+ Yêu cầu: Nhập vào dãy số nguyên có n số (2<n<100), in ra màn hình các số chẵn trong mảng

+ Code:

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
    // khai bao mang a co kich thuoc 100
int a[100];
// khai bao n (so phan tu thuc te cua mang)
int n;
    // nhap so phan tu cua mang
    do{
    cout<<"\n Nhap so phan tu cua mang: ";
    cin>>n;
    if(n<=2||n>=100)
    cout<<"\n Nhap lai n !";
    }while (n<=2||n>=100);
    // Nhap mang
    for(int i=0;i<n;i++)
    {
    cout<<"\n a["<<i<<"]= "; cin>>a[i];
    }
 
    // In mang
    cout<<"\n In cac so chan trong mang : ";
for(int i=0;i<n;i++)
    {
    if(a[i]%2==0)
    cout<<a[i]<<"; ";
    }
   return 0;
}

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

Ví dụ 3: 

+ Yêu cầu: Viết chương trình thực hiện

+ Code:
 - Nhập vào một dãy số nguyên
 - Sắp xếp dãy số tăng dần

 /* Chương trình này sử dụng hàm (phần hàm sẽ được trình bày ở Bài 11) */

#include <iostream>
#include <conio.h>
#define max 100

using namespace std;

//nhap day
void NhapDay(int a[],int n) {
  for(int i=0; i<n; i++) {
    cout<<"\n a["<<i<<"] =";
    cin>>a[i];
  }
}

//xuat day
void XuatDay(int a[],int n) {
  cout<<"\n IN DAY: ";
  for(int i=0; i<n; i++)
    cout<<a[i]<<"\t";
}

//hoan vi 2 phan tu
void Swap(int &a,int &b) {
   int t = a;
   a = b;
   b = t;
}

//thuat toan Selection Sort
void SelectionSort(int a[],int n) {
   int min; // chi so phan tu nho nhat trong day hien hanh
   for(int i=0; i<n-1; i++) {
      min = i;
      for(int j=i+1; j<n; j++)
         if(a[min]>a[j])
            min = j; //ghi nhan vi tri phan tu nho nhat
      if(min!= i)
           Swap(a[i],a[min]); // doi chu 2 phan tu
   }
}

//chuong trinh chinh
int main() {
  int a[max],n;
  cout<<"Nhap so phan tu:";
  cin>>n;
  NhapDay(a,n);
  cout<<"\n Day vua nhap la:";
  XuatDay(a,n);
  cout<<endl;
  SelectionSort (a,n);
  cout<<"\n Day vua sap xep la:";
  XuatDay(a,n);
  getch();
  return 0;
}

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

Ví dụ 4: 

+ Yêu cầu: Viết chương trình thực hiện
- Nhập dãy số nguyên có n phần tử từ bàn phím (1<= n <=100)
- In dãy vừa nhập
- Loại bỏ khỏi dãy các phần tử trùng nhau, in kết quả.

+ Code:

#include<iostream>
#include<conio.h>
#include<stdio.h>

using namespace std;

int main(){
int a[100],n;
// Nhap mang
cout<<"\n + NHAP MANG : ";
cout<<"\n - Nhap so phan tu: ";
do{
cout<<"\n n= "; cin>>n;
if(n<1||n>100)
cout<<"\n Nhap lai n!";
} while (n<1||n>100);
// Nhap mang
cout<<"\n - Nhap mang : ";
for (int i=0;i<n;i++)
{
cout<<"\n a["<<i<<"]= ";
cin>>a[i];
}
// In day
cout<<"\n + IN DAY \n";
for(int i=0;i<n;i++)
cout<<a[i]<<"; ";
// Loai bo phan tu trung nhau
int b[100],test,k=0;
b[k]=a[0];
for(int i=1;i<n;i++)
{
test =0;
for(int j=i;j>=0;j--)
if(a[i]==b[j]) test=1;
if(test==0)
b[k++]=a[i];
}
cout<<"\n => DAY DA LOAI BO: ";
cout<<"\n + IN DAY \n";
for(int i=0;i<n;i++)
cout<<a[i]<<"; ";
return 0;
}

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

Ví dụ 5 (mảng 2 chiều): 

+ Yêu cầu: Viết các hàm thực hiện:
 - Nhập vào từ bàn phím ma trân vuông kích thước n (2<= n <=6)
 - In ma trận vừa nhập
 - Tính tổng từng dòng của ma trận
 - Tìm và in ra cột chứa giá trị lớn nhất
 - Đếm số nguyên tố trong ma trận

+ Code:

 /* Chương trình này sử dụng hàm (phần hàm sẽ được trình bày ở mục 11) */


#include<iostream>
#include<conio.h>

using namespace std;

int m[6][6], n;
// nhap ma tran
void NhapMT(){
  // nhap kich thuoc
  cout<<"\n Nhap kich thuoc cua ma tran:" ;
  do{
 cout<<"\n n= "; cin>>n;
 if(n<2||n>6)
  cout<<"\n Nhap lai n!";
  }while(n<2||n>6);
  // nhap ma tran
  cout<<"\n Nhap ma tran:";
  for(int i=0;i<n;i++)
  for(int j=0;j<n;j++)
   {
  cout<<"\n m["<<i<<"]["<<j<<"]= "; cin>>m[i][j];
   }
}

// In ma tran
void InMT(){
 cout<<"\n In ma tran vua nhap: \n";
 for(int i=0;i<n;i++)
 {
  for(int j=0;j<n;j++)
   cout<<m[i][j]<<"\t";
  cout<<"\n";
 }
}

// Tinh tong tung dong
void TongDong(){
 int dong[6];
  for(int i=0;i<n;i++){
  dong[i]=0;
  for(int j=0;j<n;j++)
   dong[i]+=m[i][j];
  }
  cout<<"\n Tong dong cua ma tran: ";
  for(int i=0;i<n;i++)
 cout<<"\n Dong "<<i<<" : "<<dong[i];
}

// Tim cot chua gia tri lon nhat
void TimCotChuaMax(){
 // tim max
 int max=m[0][0], i,j;
 for(i=0;i<n;i++)
  for(j=0;j<n;j++)
 if(max<m[i][j]) max=m[i][j];
 // in cot chua max
 cout<<"\n Nhung cot chua gia tri lon nhat: ";
 for(i=0;i<n;i++)
  for(j=0;j<n;j++)
 if(max==m[i][j]) cout<<j<<"; ";
}

 // Ham kiem tra so nguyen to
 int TestNT(int a){
  for (int i=2;i<a;i++)
 if(a%i==0) return 0;
 return 1;
 }

 // Dem so nguyen to trong ma tran
 void DemSNT(){
  int dem=0;
  for(int i=0;i<n;i++)
 for(int j=0;j<n;j++)
  if(TestNT(m[i][j])==1) dem++;
 cout<<"\n So lan xuat hien cua so nguyen to trong ma tran: "<<dem;
 }

// Ham chinh
int main(){
 NhapMT();
 InMT();
 TongDong();
 TimCotChuaMax();
 DemSNT();
return 0;
}

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

Ví dụ 6 (mảng 2 chiều): 

+ Yêu cầu: Viết chương trinh thực hiên
 - Nhập các ma trận
 - Công ma trận
 - Nhân ma trân
 - In kết quả

+ Code:

/* Chương trình này sử dụng hàm (phần hàm sẽ được trình bày ở Bài 11) */

#include "conio.h"
#include "iostream"
#define max 100

using namespace std;

/*Nhap ma tran he so*/

void NhapMaTran(float A[max][max], int m, int n, char ch) {
for(int i = 0; i<m; i++)
for(int j = 0; j<n; j++) {
cout<<ch<<"["<<i<<"]["<<j<<"] = ";
cin>>A[i][j];
}
}

/*Xuat ma tran*/
void XuatMaTran(float A[max][max], int m, int n) {
for(int i=0 ; i<m; i++){
cout<<endl;
for(int j=0 ; j<n; j++)
cout<<A[i][j]<<"\t";
}
}

/*C = A+B*/
void CongMaTran(float A[max][max], float B[max][max], float C[max][max], int m, int n) {
for(int i = 0; i<m; i++)
for(int j = 0; j<n; j++)
C[i][j] = A[i][j]+B[i][j];
}

/*A cap mxn * B cap nxp = C cap mxp*/
void NhanMaTran(float A[max][max],float B[max][max], float C[max][max],int m,int n,int p)

{
for(int i = 0; i<m; i++)
for(int k = 0; k<p; k++) {
C[i][k]=0;
for(int j = 0; j<n; j++)
C[i][k] = C[i][k]+A[i][j]*B[j][k];
}
}

/*Chuong trinh chinh*/

int main() {
int m,n,p;
float A[max][max],B[max][max],C[max][max],D[max][max];
cout<<"Nhap m = ";
cin>>m;
cout<<"Nhap n = ";
cin>>n;
cout<<"Nhap p = ";
cin>>p;
cout<<"Nhap ma tran A cap "<<m<<"x"<<n<<endl;
NhapMaTran(A,m,n,'A');
cout<<"Nhap ma tran B cap "<<m<<"x"<<n<<endl;
NhapMaTran(B,m,n,'B');
cout<<"Nhap ma tran C cap "<<n<<"x"<<p<<endl;
NhapMaTran(C,n,p,'C');
cout<<"Ma tran A";
XuatMaTran(A,m,n);
getch();
cout<<"\n\nMa tran B";
XuatMaTran(B,m,n);
getch();
cout<<"\n\nMa tran C";
XuatMaTran(C,n,p);
getch();
cout<<"\n\nMa tran D = A+B";
CongMaTran(A,B,D,m,n);
XuatMaTran(D,m,n);
getch();
cout<<"\n\nMa tran D = A.C";
NhanMaTran(A,C,D,m,n,p);
XuatMaTran(D,n,p);
getch();
return 0;
}

------------------------
Xem bài khác:

[Tự học lập trình Android] Bài 4: Xây dựng ứng dụng Android đầu tiên - "Hello World"

Xây dựng ứng dụng Android đầu tiên - In ra màn hình dòng chữ "Hello World"

1. Tại một ứng dụng Android mới [Tham khảo hướng dẫn trong Bài 1]


Click nút Next bạn sẽ đến màn hình Project:


2. Cấu trúc của ứng dụng Android
Trước khi bạn chạy ứng dụng, chúng ta đi tìm hiểu một vài thư mục và tập tin trong dự án Android:


Đặc tả các thư mục và file:


S.N.
Đặc tả các thư mục và file
1
src
Này chứa các tập tin nguồn java. Theo mặc định, nó bao gồm một tập tin MainActivity.javasource có một lớp hoạt động chạy khi ứng dụng của bạn được đưa ra bằng cách sử dụng biểu tượng ứng dụng.
2
gen
gen chứa các tập tin R., Một tập tin trình biên dịch tạo ra tham chiếu tất cả các tài nguyên có trong dự án của bạn. Bạn không nên thay đổi tập tin này.
3
bin
Thư mục này chứa các tập tin Android gói. Apk được xây dựng bởi các ADT trong quá trình xây dựng và mọi thứ khác cần thiết để chạy một ứng dụng Android.
4
res / drawable-hdpi
Đây là một thư mục cho các đối tượng thể vẽ được thiết kế cho màn hình có mật độ cao.
5
res / layout
Đây là một thư mục cho các tập tin xác định giao diện người dùng của ứng dụng của bạn.
6
res/values
Đây là một thư mục cho các tập tin XML khác nhau có chứa một tập hợp các nguồn lực, chẳng hạn như dây và màu sắc các định nghĩa.
7
AndroidManifest.xml
Đây là biểu hiện tập tin trong đó mô tả các đặc điểm cơ bản của các ứng dụng và xác định mỗi thành phần của nó.


* File MainActivity

package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
* File Manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.helloworld"
   android:versionCode="1"
   android:versionName="1.0" >
   <uses-sdk
      android:minSdkVersion="8"
      android:targetSdkVersion="15" />
   <application
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       <activity
           android:name=".MainActivity"
           android:label="@string/title_activity_main" >
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>
   </application>
</manifest>
* File String

<resources>
    <string name="app_name">HelloWorld</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
</resources>

* File R

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.example.helloworld;

public final class R {
    public static final class attr {
    }
    public static final class dimen {
        public static final int padding_large=0x7f040002;
        public static final int padding_medium=0x7f040001;
        public static final int padding_small=0x7f040000;
    }
    public static final class drawable {
        public static final int ic_action_search=0x7f020000;
        public static final int ic_launcher=0x7f020001;
    }
    public static final class id {
        public static final int menu_settings=0x7f080000;
    }
    public static final class layout {
        public static final int activity_main=0x7f030000;
    }
    public static final class menu {
        public static final int activity_main=0x7f070000;
    }
    public static final class string {
        public static final int app_name=0x7f050000;
        public static final int hello_world=0x7f050001;
        public static final int menu_settings=0x7f050002;
        public static final int title_activity_main=0x7f050003;
    }
    public static final class style {
        public static final int AppTheme=0x7f060000;
    }
}

* File Layout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >

   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_centerHorizontal="true"
       android:layout_centerVertical="true"
       android:padding="@dimen/padding_medium"
       android:text="@string/hello_world"
       tools:context=".MainActivity" />

</RelativeLayout>

* Chạy ứng dụng (RUN)


>> Clip hướng dẫn tạo Project ứng dụng mới

-

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

Danh mục bài viết