Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 34

CƠ SỞ LẬP TRÌNH

Buổi 2: Viết chương trình..................................................................................5


1. Viết chương trình xuất ra câu thông báo: Xin chào bạn..........................5
2. Nhập vào 2 số nguyên. Tính tổng, hiệu, tích, thương của 2 số đó...........5
3. Nhập vào bán kính của hình tròn. Tính chu vi, diện tích của hình tròn...5
4. Nhập vào chiều dài, chiều rộng của hình chữ nhật. Tính chu vi, diện tích
của hình chữ nhật..............................................................................................5
5. Nhập vào độ dài 3 cạnh của hình tam giác. Tính chu vi, diện tích của
hình tam giác này..............................................................................................6
Buổi 3: Viết chương trình..................................................................................6
1. Viết chương trình cho phép nhập vào 3 số nguyên tùy ý, sau đó in ra thông
báo cho biết số lớn nhất trong 3 số đã nhập có giá trị là bao nhiêu..............6
2. Viết chương trình cho phép nhập vào 2 số nguyên tuỳ ý, sau đó in ra tổng,
hiệu, tích và thương của 2 số đã nhập. Chương trình cần kiểm tra số bị chia
có bằng 0 hay không trước khi thực hiện phép chia.....................................7
3. Viết chương trình nhập vào 1 số nguyên, kiểm tra xem đây là số chẵn hay
số lẻ...............................................................................................................7
4. Viết chương trình giải phương trình bậc hai một ẩn số có dạng ax2 + bx +
c=0
Buổi 4: Viết chương trình..................................................................................9
1. Viết chương trình mô phỏng máy tính cá nhân với 4 phép toán cơ bản :
+ - * /. Khi thi hành, chương trình sẽ cho phép nhập phép toán, 2 số. In ra kết
quả tính được giữa 2 số đã nhập dựa trên phép toán đã yêu cầu. (switch).......9
2. Viết chương trình cho phép nhập vào Tháng và Năm cần xét, sau đó
chương trình sẽ in ra thông báo cho biết Tháng của Năm đã nhập có bao
nhiêu ngày. (switch)........................................................................................10
3. Viết chương trình cho phép nhập vào một số nguyên n, sau đó in ra
bảng cửu chương n với n là một số từ 1 đến 9. (for)......................................11
4. Viết chương trình cho phép in ra màn hình các bảng cửu chương từ 1
đến 9. (2 for)...................................................................................................12
Buổi 5: Viết chương trình................................................................................12

1
1. Viết chương trình cho phép in ra màn hình hình chữ nhật có kích thước
n x m (n: Kích thước của chiều dài, m: Kích thước chiều rộng). Ký hiệu vẽ sử
dụng dấu ‘*’. (2 for). VD: n=4, m=3..............................................................12
3. Viết chương trình nhập vào 1 số nguyên dương. Tìm các ước số của số
đó. 13
4. Viết chương trình nhập vào 2 số nguyên dương. Tìm các ước số chung
của hai số đó...................................................................................................14
Buổi 6: Viết chương trình................................................................................15
1. Viết chương trình nhập vào một số nguyên dương n. Sau đó chương trình
cho phép người dùng nhập một trong các lựa chọn sau. Chương trình chỉ kết
thúc khi người dùng lựa chọn “Thoát”...........................................................15
a) Tìm các ước số của n........................................................................15
b) Tính giai thừa của n..........................................................................15
c) Tính tổng từ 1->n..............................................................................15
d) Kiểm tra n có phải là số nguyên tố...................................................15
e) Kiểm tra n có phải là số chính phương.............................................16
f) Kiểm tra n có phải là số hoàn thiện..................................................16
g) In ra các ký số của n.........................................................................16
h) Tính tổng các ký số của n.................................................................16
i) Kiểm tra n có phải là số đối xứng.....................................................16
j) Thoát.................................................................................................17
2. Viết chương trình cho phép nhập vào 1 giá trị số nguyên dương, tượng
trưng cho số tiền vnđ, sau đó trên màn hình sẽ đưa ra thông báo cho phép
chọn loại ngoại tệ muốn đổi. Chương trình chỉ kết thúc khi người dùng lựa
chọn “Thoát”...................................................................................................18
3. Viết chương trình, cho phép tính diện tích và chu vi của các hình tròn,
chữ nhật, hình thang. Giao diện có dạng như mô tả sau. Chương trình chỉ kết
thúc khi người dùng lựa chọn “Thoát”. Tính Diện tích – Chu vi 1 – Hình
tròn 2 – Hình chữ nhật 3 – Hình thang 4–
Thoát...............................................................................................................19
4. Viết chương trình mô phỏng hoạt động của một máy bán nước tự động,
người dùng nhập vào số tiền và lựa chọn loại nước cần mua. Chương trình

2
cần in ra số tiền cần trả lại sau khi bán. Chương trình chỉ kết thúc khi người
dùng lựa chọn “Thoát”....................................................................................20
Buổi 7: Viết hàm và gọi hàm............................................................................21
1. Viết chương trình nhập vào một số nguyên dương n. Sau đó chương trình
cho phép người dùng nhập một trong các lựa chọn sau.................................21
a. Tìm ước số chung lớn nhất của 2 số nguyên.......................................24
b. Tìm bội số chung nhỏ nhất của 2 số nguyên.......................................24
c. In ra các số nguyên tố nhỏ hơn n........................................................24
b) In ra n số nguyên tố đầu tiên...............................................................24
c) Liệt kê các ước số là số nguyên tố của n.............................................24
d) Đảo ngược số n...................................................................................24
e) Liệt kê n số Fibonacci đầu tiên...........................................................25
f) Chuyển đổi số n từ hệ cơ số 10 sang hệ cơ số bất kỳ..........................25
g) Phân tích số n thành các thừa số nguyên tố (vd: n=28 -> 2x2x7).......25
h) Thoát...................................................................................................25
Buổi 8: Viết chương trình................................................................................25
1. Kiểm tra một chuỗi có phải là chuỗi đối xứng (thuận/nghịch) –
Palindrome hay không ?.................................................................................25
2. Viết chương trình nhập từ bàn phím một chuỗi không quá 50 ký tự và
một ký tự bất kỳ. Đếm và in ra màn hình số lần xuất hiện của ký tự đó trong
chuỗi vừa nhập................................................................................................25
3. Viết chương trình nhập vào một chuỗi bất kỳ bao gồm cả số, ký tự
thường và ký tự hoa từ bàn phím. Sau đó đếm và in ra số ký tự thường, ký tự
hoa và số có trong chuỗi đó............................................................................26
4. Nhập vào 2 chuỗi, so sánh 2 chuỗi bất kỳ được nhập từ bàn phím........26
5. Nhập vào 1 chuỗi và 1 số nguyên bất kỳ, in ra số dòng của chuỗi tương
ứng với số đó..................................................................................................27
6. Đếm số lần xuất hiện ký tự 'a' trong chuỗi nhập từ bàn phím................27
7. Nhập vào 1 chuỗi bất kỳ và 1 số nguyên n , sau đó in ra chuỗi được
ghép từ n lần chuỗi đó....................................................................................28
8. Nhập vào 1 chuỗi và in các ký tự trong chuỗi đó ra màn hình..............28

3
9. Đếm số khoảng trắng có trong chuỗi được nhập từ bàn phím...............28
10. Tách các từ có trong chuỗi và hiển thị mỗi từ trên 1 dòng....................28
Buổi 9.................................................................................................................29
1. Viết chương trình nhập vào một mảng số nguyên có n phần tử
(n>=1 và n<=10) và thực hiện các công việc sau:.......................................29
Xuất giá trị các phần tử của mảng..............................................................29
In ra các phần tử có giá trị là số thuận/nghịch............................................29
Tìm phần tử có giá trị lớn nhất, nhỏ nhất...................................................29
Đếm số phần tử là bội của 5.......................................................................29
Sắp xếp mảng tăng dần...............................................................................29
2. Viết chương trình nhập vào một mảng số nguyên có n phần tử và
thực hiện các công việc sau:.........................................................................31
a. In ra các số nguyên tố trong mảng......................................................31
b. Đếm số phần tử là số hoàn hảo...........................................................31
c. Đếm số lượng các phần tử là số chính phương...................................31
d. Bình phương giá trị của các phần tử số chẳn......................................31
e. Sắp xếp mảng giảm dần......................................................................31
f. Sắp xếp mảng tăng dần.......................................................................31

4
CƠ SỞ LẬP TRÌNH
Buổi 2: Viết chương trình
1. Viết chương trình xuất ra câu thông báo: Xin chào bạn.
2. Nhập vào 2 số nguyên. Tính tổng, hiệu, tích, thương của 2 số đó.
package javaapplication2;
import java.util.Scanner;
public class JavaApplication2 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int a, b;
int tong, hieu, tich; float thuong;
System.out.println("Nhap so thu 1: ");
a=sc.nextInt();
System.out.println("Nhap so thu 2: ");
b=sc.nextInt();
tong=a+b;
hieu=a-b;
tich=a*b;
thuong=(float)a/b;
System.out.println("Tong: " + tong);
System.out.println("Hieu: " + hieu);
System.out.println("Tich: " + tich);
System.out.println("Thuong: " + thuong);
}
}

3. Nhập vào bán kính của hình tròn. Tính chu vi, diện tích của hình tròn.

public static void main(String[] args) { cv=(double) 2*r*Math.PI;


double r; dt=(double) Math.PI*r*r;
double cv, dt; System.out.println("cv:"+cv);
Scanner sc=new Scanner(System.in); System.out.println("dt:"+dt);
System.out.println("Nhap ban kinh hinh }
tron:");
}
r=sc.nextDouble();

4. Nhập vào chiều dài, chiều rộng của hình chữ nhật. Tính chu vi, diện tích của hình chữ
nhật.

5
public static void main(String[] args) { cr=sc.nextInt();
int cd, cr; cv=(cd+cr)*2;
int cv, dt; dt=cd*cr;
Scanner sc=new Scanner(System.in); System.out.println("Chu vi:"+cv);
System.out.println("Nhap chieu dai: System.out.println("Dien tich:"+dt);
");
}
cd=sc.nextInt();
}
System.out.println("Nhap chieu rong:
");

5. Nhập vào độ dài 3 cạnh của hình tam giác. Tính chu vi, diện tích của hình tam giác này.
public static void main(String[] args) {
int a, b, c, h;
int dt;
float cv;
Scanner sc=new Scanner(System.in);
System.out.println("Nhap canh a: ");
a=sc.nextInt();
System.out.println("Nhap canh b: ");
b=sc.nextInt();
System.out.println("Nhap canh c: ");
c=sc.nextInt();
System.out.println("Nhap chieu cao h: ");
h=sc.nextInt();
cv=a+b+c;
dt=(a*h)/2;
System.out.println("Chu vi: "+cv);
System.out.println("Dien tich: "+dt);
}
}

6
Buổi 3: Viết chương trình

Viết chương trình cho phép nhập vào 3 số nguyên tùy ý, sau đó in ra thông báo cho biết
số lớn nhất trong 3 số đã nhập có giá trị là bao nhiêu.

public static void main(String[] args) { c=sc.nextInt() ;


int a, b, c ; int max=a;
Scanner sc = new if(max<b)
Scanner(System.in);
max=b;
System.out.println("Nhap a: ");
if(max<c)
a=sc.nextInt() ;
max=c;
System.out.println("Nhap b: ");
System.out.println("Max= "+max);
b=sc.nextInt() ;
}
System.out.println("Nhap c: ");
}

Viết chương trình cho phép nhập vào 2 số nguyên tuỳ ý, sau đó in ra tổng, hiệu, tích và
thương của 2 số đã nhập. Chương trình cần kiểm tra số bị chia có bằng 0 hay không
trước khi thực hiện phép chia.

public static void main(String[] args) { tich=a*b;


int a, b, tong , hieu, tich ; System.out.println("Tong= "+tong);
float thuong; System.out.println("Hieu= "+hieu);
Scanner sc = new Scanner(System.in); System.out.println("Tich= "+tich);
System.out.println("Nhap a: "); if(b!=0){
a=sc.nextInt() ; thuong=(float)a/b;
System.out.println("Nhap b: "); System.out.println("Thuong=
"+thuong);
b=sc.nextInt() ;
}
tong=a+b;
}
hieu=a-b;
}

Viết chương trình nhập vào 1 số nguyên, kiểm tra xem đây là số chẵn hay số lẻ.

public static void main(String[] args) {

7
int a;
Scanner sc = new Scanner(System.in);
System.out.println("Nhap a: ");
a=sc.nextInt() ;
if(a%2==0)
System.out.println("So chan");
else
System.out.println("So le");
}
}

Viết chương trình giải phương trình bậc hai một ẩn số có dạng
ax2 + bx + c = 0
Khi thi hành, chương trình cho phép nhập vào giá trị tương đương với các hệ số a, b, c.
Sau đó, chương trình sẽ tính và in ra kết quả tương ứng với các tình huống giải phương
trình bậc hai đã được học trước đây.

public static void main(String[] args) {


int a, b, c;
double x1, x2, dt;
Scanner sc = new Scanner(System.in);

System.out.println("Nhap a: ");
a=sc.nextInt();
System.out.println("Nhap b: ");
b=sc.nextInt();
System.out.println("Nhap c: ");
c=sc.nextInt();

if(a==0){
if(b==0){
if(c==0)
System.out.println("VSN");
else

8
System.out.println("VN");
}else{
x1=(double)-c/b;
System.out.println("PT 1 nghiem x= "+x1);
}
}else{//a!=0
dt=b*b-(4*a*c);
if(dt<0)
System.out.println("VN");
else if(dt==0){
x1=(double)-b/(2*a);
System.out.println("PT co nghiem kep x1 = x2 = "+x1);
}else{
x1=((double)-b+Math.sqrt(dt))/(2*a);
x2=((double)-b-Math.sqrt(dt))/(2*a);
System.out.println("PT co 2 nghiem phan biet la x1= "+x1+", x2= "+x2);
}
}
}

Buổi 4: Viết chương trình


1. Viết chương trình mô phỏng máy tính cá nhân với 4 phép toán cơ bản : + - * /. Khi thi
hành, chương trình sẽ cho phép nhập phép toán, 2 số. In ra kết quả tính được giữa 2 số
đã nhập dựa trên phép toán đã yêu cầu. (switch)
public static void main(String[] args) {
int a, b, kq;
char pt;
Scanner sc= new Scanner(System.in);

System.out.println("Nhap a: ");
a=sc.nextInt();
System.out.println("Nhap b: ");
b=sc.nextInt();

9
System.out.println("Nhap phep tinh: ");
pt=sc.next().charAt(0);
switch(pt){
case '+':
System.out.println("Tong: "+(a+b));
break;
case '-':
System.out.println("Tong: "+(a-b));
break;
case '*':
System.out.println("Tong: "+(a*b));
break;
case '/':
if(b!=0)
System.out.println("Tong: "+((float)a/b));
else
System.out.println("Khong thuc hien chia cho 0");
break;
default:
System.out.println("Du lieu khong hop le");
}
}
}
2. Viết chương trình cho phép nhập vào Tháng và Năm cần xét, sau đó chương trình sẽ in
ra thông báo cho biết Tháng của Năm đã nhập có bao nhiêu ngày. (switch)

public static void main(String[] args) {


int thang, nam ;
Scanner sc= new Scanner(System.in);
System.out.println("Nhap thang: ");
thang=sc.nextInt();
System.out.println("Nhap nam: ");
nam=sc.nextInt();

10
switch(thang){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31 ngay");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30 ngay");
break;
case 2:
if(nam%4==0)
System.out.println("29 ngay");
else
System.out.println("28 ngay");
break;
default:
System.out.println("KCTN");
}
}
}

3. Viết chương trình cho phép nhập vào một số nguyên n, sau đó in ra bảng cửu chương n
với n là một số từ 1 đến 9. (for)

public static void main(String[] args) {


int n, i ;

11
Scanner sc=new Scanner(System.in);
System.out.println("Nhap n: ");
n=sc.nextInt();
for(i=1;i<=10;i++)
System.out.println(n+"x"+i+"="+n*i);
}
}

4. Viết chương trình cho phép in ra màn hình các bảng cửu chương từ 1 đến 9. (2 for)

public static void main(String[] args) {


int i, j ;
for(i=1;i<=9;i++){
System.out.println("Bang Cuu Chuong"+i+":");
for(j=1;j<=10;j++){
System.out.println(i+"x"+j+"="+i*j);
}
System.out.println("");
}
}
}

Buổi 5: Viết chương trình


1. Viết chương trình cho phép in ra màn hình hình chữ nhật có kích thước n x m (n: Kích
thước của chiều dài, m: Kích thước chiều rộng). Ký hiệu vẽ sử dụng dấu ‘*’. (2 for). VD:
n=4, m=3

public static void main(String[] args) {


int n, m, i,j ;
Scanner sc=new Scanner(System.in);
12
System.out.println("Nhap chieu dai: ");
n=sc.nextInt();
System.out.println("Nhap chieu rong: ");
m=sc.nextInt();
for(i=1;i<=m;i++) {
for(j=1;j<=n;j++)
System.out.print("*");
System.out.println("");
}
}
}

2. Tương tự bài 7

public static void main(String[] args) {


int n, m, i,j ;
Scanner sc=new Scanner(System.in);
System.out.println("Nhap chieu dai: ");
n=sc.nextInt();
System.out.println("Nhap chieu rong: ");
m=sc.nextInt();
for(i=1;i<=m;i++) {
for(j=1;j<=n;j++)
if(i==1||i==m||j==1||j==n)
System.out.print("*");
else
System.out.print(" ");
System.out.println();
}
}

13
}
3. Viết chương trình nhập vào 1 số nguyên dương. Tìm các ước số của số đó.
VD: Nhập: 12 -> 1, 2, 3, 4, 6, 12
public static void main(String[] args) {
int n, i;
Scanner sc=new Scanner(System.in);
do{
System.out.println("Nhap 1 so nguyen duong");
n=sc.nextInt();
}while(n<=0);
System.out.print("Cac uoc so cua "+n+" la: ");
for(i=1; i<=n; i++)
if(n%i==0)
System.out.print(i+" ");
}
}
4. Viết chương trình nhập vào 2 số nguyên dương. Tìm các ước số chung của hai số đó.
VD: Nhập: 9, 12 -> 1, 3
public static void main(String[] args) {
int n, m, i, max=1;
Scanner sc=new Scanner(System.in);
do{
System.out.println("Nhap so nguyen duong thu 1:");
n=sc.nextInt();
}while(n<=0);
do{
System.out.println("Nhap so nguyen duong thu 2:");
m=sc.nextInt();
}while(m<=0);

for(i=1; i<=(n<m?n:m); i++)


if(n%i==0&&m%i==0)

14
max=i;
System.out.print("Uoc so chung cua "+n+" va "+m+" la: "+ max);
}
}

Buổi 6: Viết chương trình

Viết chương trình nhập vào một số nguyên dương n. Sau đó chương trình cho phép người
dùng nhập một trong các lựa chọn sau. Chương trình chỉ kết thúc khi người dùng lựa chọn
“Thoát”.

Tìm các ước số của n


Tính giai thừa của n
Tính tổng từ 1->n
Kiểm tra n có phải là số nguyên tố
Kiểm tra n có phải là số chính phương
Kiểm tra n có phải là số hoàn thiện
In ra các ký số của n
Tính tổng các ký số của n
Kiểm tra n có phải là số đối xứng
Thoát

public class Main {


public static void inUocSo(int n){
System.out.println("Cac uoc so cua"+n+" la: ");
for(int i=1;i<=n;i++)
if(n%i==0)
System.out.print(i+" ");
}
public static long tinhGiaiThua(int n){
long kq=1;
for(int i=1;i<=n;i++)
kq=kq*i;
return kq;
}
public static long tinhTong(int n){
long tong=0;
for(int i=1;i<=n;i++)
tong+=i;
return tong;
}
public static void timSoNguyenTo(int n){
int f=0;
for(int i=2;i<n;i++)

15
if(n%i==0)
{
f=1;
break;
}
if(f!=1)
System.out.println("So nguyen to");
else
System.out.println("Khong phai so nguyen to");
}
public static void timSoChinhPhuong(int n){
double c;
c=Math.sqrt(n);
if(c*c==n){
System.out.println(n+" la so chinh phuong");
}else{
System.out.println(n+" khong la so chinh phuong");
}
}
public static void timSoHoanThien(int n){
int S=0, i;
for( i=1; i<n ; i++);{
if(n%i == 0) {
S+= i ;
}
}
if(S==n){
System.out.println(n+" la so hoan thien");
}else{
System.out.println(n+" khong la so hoan thien");
}
}
public static void inCacKySo(int n){
int i=n;
while(i>0){
System.out.print(i%10);
i/=10;
}
}
public static void tinhTongCacKySo(int n){

int sum=0;
int i=n;
while(i>0){
sum+=i%10;
i /= 10;
}
System.out.println("Tong cac ky so cua n la: "+sum);
}
public static void SoDoiXung(int n){

16
String strN=Integer.toString(n);
int len = strN.length();
for(int i=0 ; i<len/2 ; i++){
if(strN.charAt(i)!=strN.charAt(len-1-i)){
System.out.println(n+" khong la so doi xung");
return;
}
System.out.println(n+" la so doi xung");
}
}

public static void main(String[] args) {


int n, lc, i;
Scanner sc=new Scanner(System.in);
do{
System.out.println("Nhap n: ");
n=sc.nextInt();
}while(n<=0);
do{
System.out.println("Nhap lua chon: ");
lc=sc.nextInt();
switch(lc){
case 1:
inUocSo(n);
break;
case 2:
long gt=tinhGiaiThua(n);
System.out.println(n+"!= "+gt);
break;
case 3:
long s=tinhTong(n);
System.out.println("tong = "+s);
case 4:
timSoNguyenTo(n);
break;
case 5:
timSoChinhPhuong(n);
break;
case 6:
timSoHoanThien(n);
break;
case 7:
inCacKySo(n);
break;
case 8:
tinhTongCacKySo(n);
break;
case 9:
SoDoiXung(n);
break;

17
case 10:
System.out.println("Thoat");
}
}while (lc!=10);
}
}
2. Viết chương trình cho phép nhập vào 1 giá trị số nguyên dương, tượng trưng cho số tiền
vnđ, sau đó trên màn hình sẽ đưa ra thông báo cho phép chọn loại ngoại tệ muốn đổi.
Chương trình chỉ kết thúc khi người dùng lựa chọn “Thoát”.
Đổi ngoại tệ:
1. USD
2. GBP
3. EUR
4. JPY
5. Thoát
Giả sử ta có các loại ngoại tệ và tỷ giá quy đổi như sau:
- 1 USD = 21380 Vnđ- 1 EUR = 23555 Vnđ
- 1 GBP = 32622 Vnđ - 1 JPY = 178 Vnđ
public static void main(String[] args) {
int USDtoVND = 21380;
int EURtoVND = 23555;
int GBPtoVND = 32622;
int JPYtoVND = 178;

System.out.println("Nhap so tien VND");


Scanner sc = new Scanner(System.in);
int VND = sc.nextInt();

while(true){
System.out.println("Doi ngoai te:");
System.out.println("1.USD");
System.out.println("2.GBP");
System.out.println("3.EUR");
System.out.println("4.JPY");
System.out.println("5.Thoat");

System.out.println("Lua chon: ");


int luaChon = sc.nextInt();

18
switch(luaChon){
case 1:
int soTienUSD = VND / USDtoVND;
System.out.println(VND+" VND = "+ soTienUSD + "USD");
break;
case 2:
int soTienGBP = VND / GBPtoVND;
System.out.println(VND+" VND = "+ soTienGBP + "GBP");
break;
case 3:
int soTienEUR = VND / EURtoVND;
System.out.println(VND+" VND = "+ soTienEUR + "EUR");
break;
case 4:
int soTienJPY = VND / JPYtoVND;
System.out.println(VND+" VND = "+ soTienJPY + "JPY");
break;
case 5:
System.out.println("Thoat chuong trinh");
return;
default:
System.out.println("Lua chon khong hop le!");
}
}
}
}
3. Viết chương trình, cho phép tính diện tích và chu vi của các hình tròn, chữ nhật, hình
thang. Giao diện có dạng như mô tả sau. Chương trình chỉ kết thúc khi người dùng lựa
chọn “Thoát”.
Tính Diện tích – Chu vi
1 – Hình tròn
2 – Hình chữ nhật
3 – Hình thang
4 – Thoát

public static void main(String[] args) {


final double PI = 3.14159;

19
while (true) {
System.out.println("Tính Diện tích – Chu vi");
System.out.println("1 – Hình tròn");
System.out.println("2 – Hình chữ nhật");
System.out.println("3 – Hình thang");
System.out.println("4 – Thoát");

System.out.print("Lựa chọn: ");


Scanner sc = new Scanner(System.in);
int luaChon = sc.nextInt();

switch (luaChon) {
case 1:
System.out.println("Tính diện tích và chu vi hình tròn");
System.out.print("Nhập bán kính: ");
double r = sc.nextDouble();
System.out.println("Diện tích: " + PI * r * r);
System.out.println("Chu vi: " + 2 * PI * r);
break;
case 2:
System.out.println("Tính diện tích và chu vi hình chữ nhật");
System.out.print("Nhập chiều dài: ");
double d = sc.nextDouble();
System.out.print("Nhập chiều rộng: ");
double w = sc.nextDouble();
System.out.println("Diện tích: " + d * w);
System.out.println("Chu vi: " + (d + w) * 2);
break;
case 3:
System.out.println("Tính diện tích và chu vi hình thang");
System.out.print("Nhập cạnh đáy lớn: ");
double b1 = sc.nextDouble();
System.out.print("Nhập cạnh đáy nhỏ: ");
double b2 = sc.nextDouble();
System.out.print("Nhập chiều cao: ");
double h = sc.nextDouble();
System.out.println("Diện tích: " + (b1 + b2) * h / 2);
System.out.println("Chu vi: " + (b1 + b2 + h) * 2);
break;
case 4:
System.out.println("Thoát chương trình");
return;
default:
System.out.println("Lựa chọn không hợp lệ!");
}
}
}
}

20
4. Viết chương trình mô phỏng hoạt động của một máy bán nước tự động, người dùng
nhập vào số tiền và lựa chọn loại nước cần mua. Chương trình cần in ra số tiền cần trả
lại sau khi bán. Chương trình chỉ kết thúc khi người dùng lựa chọn “Thoát”.
1. CocaCola (10000)
2. Lavie (6000)
3. JPY Pocari Sweat (16000)
4. Thoát
gia_cocacola = 10000
gia_lavie = 6000
gia_pocari_sweat = 16000

while True:
print("Máy bán nước tự động")
print("1 – CocaCola (10000)")
print("2 – Lavie (6000)")
print("3 – JPY Pocari Sweat (16000)")
print("4 – Thoát")

lua_chon = int(input("Lựa chọn: "))

if lua_chon == 1:
so_tien = int(input("Nhập số tiền: "))
if so_tien >= gia_cocacola:
so_tien_tra_lai = so_tien - gia_cocacola
print("Tiền trả lại: ", so_tien_tra_lai)
else:
print("Tiền không đủ!")
elif lua_chon == 2:
so_tien = int(input("Nhập số tiền: "))
if so_tien >= gia_lavie:
so_tien_tra_lai = so_tien - gia_lavie
print("Tiền trả lại: ", so_tien_tra_lai)
else:
print("Tiền không đủ!")
elif lua_chon == 3:
so_tien = int(input("Nhập số tiền: "))
if so_tien >= gia_pocari_sweat:
so_tien_tra_lai = so_tien - gia_pocari_sweat
print("Tiền trả lại: ", so_tien_tra_lai)
else:
print("Tiền không đủ!")
elif lua_chon == 4:
print("Thoát chương trình")
break
else:
print("Lựa chọn không hợp lệ!")

21
Buổi 7: Viết hàm và gọi hàm

1. Viết chương trình nhập vào một số nguyên dương n. Sau đó chương trình cho phép
người dùng nhập một trong các lựa chọn sau.

Chương trình chỉ kết thúc khi người dùng lựa chọn “Thoát”.
a. Tìm ước số chung lớn nhất của 2 số nguyên
b. Tìm bội số chung nhỏ nhất của 2 số nguyên
c. In ra các số nguyên tố nhỏ hơn n
b) In ra n số nguyên tố đầu tiên
c) Liệt kê các ước số là số nguyên tố của n
d) Đảo ngược số n
e) Liệt kê n số Fibonacci đầu tiên
f) Chuyển đổi số n từ hệ cơ số 10 sang hệ cơ số bất kỳ
g) Phân tích số n thành các thừa số nguyên tố (vd: n=28 -> 2x2x7)
h) Thoát

public class JavaApplication1 {


public static int tinhGiaiThua(int n){
int t=1, i;
for(i=1 ; i<=n ; i++)
t=t*i;
return t;
}
public static int timUSLN(int n, int m){
int i, max=1;
for(i=1 ; i<=Math.min(m, n) ; i++)
if(n%1==0 && m%i==0)
max=i;
return max;
}
public static int ktSNT(int x){
int i;
for(i=2 ; i<x ; i++)
if(x%i==0)
if(x%i==0)
return 0;
return 1;
}
public static int soDaoNguoc(int n){
int SDN=0;
while(n>0){
SDN=SDN*10 + n%10;
n/=10;
}
return SDN;
}
public static int fibonacci(int n){
int f0 = 0;

22
int f1 = 1;
int fn = 1;

if(n<0){
return -1;
}else if(n==0 || n==1){
return n;
}else{
for(int i=2 ; i<n ; i++){
f0 = f1;
f1 = fn;
fn = f0+f1;
}
}
return fn;
}
public static final char CHAR_55 = 55;
public static String convertNumber(int n, int b) {
if (n < 0 || b < 2 || b > 16 ) {
return "";
}
StringBuilder sb = new StringBuilder();
int m;
int remainder = n;

while (remainder > 0) {


if (b > 10) {
m = remainder % b;
if (m >= 10) {
sb.append((char) (CHAR_55 + m));
} else {
sb.append(m);
}
} else {
sb.append(remainder % b);
}
remainder = remainder / b;
}
return sb.reverse().toString();
}
public static void thuaSoNguyenTo(int n){
for(int i=2; i<=n;i++)
{
while(n%i==0)
{
n=n/i;
if(n==1)
System.out.print(i);
else
System.out.print(i+" x ");

23
}
if (n==1)
break;
}
}
public static void main(String[] args) {
int n, lc, i;
Scanner sc = new Scanner(System.in);
do{
System.out.println("Nhap so nguyen duog n: ");
n = sc.nextInt();
}while(n<=0);
do{
System.out.println("Nhap lua chon: ");
lc = sc.nextInt();
switch(lc){
case 1:
int m;
do{
System.out.println("Nhap so nguyen duong m: ");
m = sc.nextInt();
}while(m<=0);
System.out.println("UCLN: "+timUSLN(n, m));
break;
case 2:
do{
System.out.println("Nhap so nguyen duong m: ");
m = sc.nextInt();
}while(m<=0);
System.out.println("UCLN: "+(n*m/timUSLN(n, m)));
break;
case 3:
System.out.println("Cac SNT nho hon "+n+" : ");
for(i=2 ; i<n ; i++)
if(ktSNT(i)==1)
System.out.print(i+" ");
break;
case 4:
System.out.print(n+" SNT dau tien: ");
int dem=0; i=2;
while(true){
if(ktSNT(i)==1){
System.out.print(i+" ");
dem=dem+1;
if(dem==n)
break;
}
i++;
}
break;

24
case 5:
System.out.print("Cac uoc so cua "+n+" : ");
for(i=2 ; i<=n ; i++)
if(n%i==0 && ktSNT(i)==1)
System.out.print(i+" ");
break;
case 6:
System.out.println("Dao nguoc so n: "+soDaoNguoc(n));
break;
case 7:
System.out.println(n+" so fibonacci dau tien: ");
for(i=0 ; i<n ; i++){
System.out.print(fibonacci(i)+" ");
}
break;
case 8:
n = 15;
System.out.println("So " + n + " trong he co so 2 = "+ convertNumber(n, 2));

System.out.println("So " + n + " trong he co so 16 = "+ convertNumber(n, 16));


break;
case 9:
thuaSoNguyenTo(n);
break;
case 10:
System.out.print("Thoat");
break;
default:
System.out.println("Khong co lua chon nay, moi nhap lai");
}
}while(lc!=10);
}
}

Buổi 8: Viết chương trình


1. Kiểm tra một chuỗi có phải là chuỗi đối xứng (thuận/nghịch) – Palindrome hay không ?

25
2. Viết chương trình nhập từ bàn phím một chuỗi không quá 50 ký tự và một ký tự bất
kỳ. Đếm và in ra màn hình số lần xuất hiện của ký tự đó trong chuỗi vừa nhập.

3. Viết chương trình nhập vào một chuỗi bất kỳ bao gồm cả số, ký tự thường và ký tự hoa
từ bàn phím. Sau đó đếm và in ra số ký tự thường, ký tự hoa và số có trong chuỗi đó.
HD: sử dụng hàm kiểm tra ký tự hoa/thường/số - Character.isUpperCase(),
Character.isLowerCase(), Character.isDigit()

26
4. Nhập vào 2 chuỗi, so sánh 2 chuỗi bất kỳ được nhập từ bàn phím.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi 1: ");
String str1 = sc.nextLine();
System.out.println("Nhập chuỗi 2: ");
String str2 = sc.nextLine();
if (str1.equals(str2)) {
System.out.println("2 chuỗi bằng nhau");
} else if (str1.equalsIgnoreCase(str2)) {
System.out.println("2 chuỗi bằng nhau về mặt chữ
hoa/thường");
} else {
System.out.println("2 chuỗi khác nhau");
}
int result = str1.compareTo(str2);
if (result < 0) {
System.out.println("Chuỗi 1 nhỏ hơn chuỗi 2");
} else if (result > 0) {
System.out.println("Chuỗi 1 lớn hơn chuỗi 2");
} else {
System.out.println("Chuỗi 1 bằng chuỗi 2");
}
}
}

5. Nhập vào 1 chuỗi và 1 số nguyên bất kỳ, in ra số dòng của chuỗi tương ứng với số đó.
public static void main(String[] args) {

27
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi: ");
String str = sc.nextLine();
System.out.println("Nhập số nguyên: ");
int n = sc.nextInt();
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == '\n') {
count++;
}
}
System.out.println("Số dòng của chuỗi " + str + " tương ứng với
số " + n + " là: " + count);
}
}

6. Đếm số lần xuất hiện ký tự 'a' trong chuỗi nhập từ bàn phím.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

// Nhập chuỗi
System.out.println("Nhập chuỗi: ");
String str = sc.nextLine();

// Khởi tạo biến đếm


int count = 0;

// Duyệt chuỗi
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == 'a') {
count++;
}
}

// In ra kết quả
System.out.println("Số lần xuất hiện ký tự 'a' trong chuỗi " +
str + " là: " + count);
}
}
7. Nhập vào 1 chuỗi bất kỳ và 1 số nguyên n , sau đó in ra chuỗi được ghép từ n lần chuỗi
đó.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi: ");
String str = sc.nextLine();
System.out.println("Nhập số nguyên n: ");
int n = sc.nextInt();
String result = "";
for (int i = 0; i < n; i++) {
result += str;
}

System.out.println("Chuỗi được ghép từ n lần chuỗi " + str + "


là: " + result);
}
}
8. Nhập vào 1 chuỗi và in các ký tự trong chuỗi đó ra màn hình.

28
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi: ");
String str = sc.nextLine();
for (int i = 0; i < str.length(); i++) {
System.out.print(str.charAt(i));
}
}
}

9. Đếm số khoảng trắng có trong chuỗi được nhập từ bàn phím.


(HD: Character.isSpace(kyTu))
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi: ");
String str = sc.nextLine();
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (Character.isWhitespace(str.charAt(i))) {
count++;
}
}
System.out.println("Số khoảng trắng có trong chuỗi " + str + "
là: " + count);
}
}

10.Tách các từ có trong chuỗi và hiển thị mỗi từ trên 1 dòng


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi: ");
String str = sc.nextLine();
String[] words = str.split(" ");
for (String word : words) {
System.out.println(word);
}
}
}

Buổi 9
1. Viết chương trình nhập vào một mảng số nguyên có n phần tử (n>=1 và n<=10) và thực
hiện các công việc sau:
Xuất giá trị các phần tử của mảng
In ra các phần tử có giá trị là số thuận/nghịch
Tìm phần tử có giá trị lớn nhất, nhỏ nhất
Đếm số phần tử là bội của 5
Sắp xếp mảng tăng dần

29
30
2. Viết chương trình nhập vào một mảng số nguyên có n phần tử và thực hiện các công
việc sau:
a. In ra các số nguyên tố trong mảng
b. Đếm số phần tử là số hoàn hảo
c. Đếm số lượng các phần tử là số chính phương
d. Bình phương giá trị của các phần tử số chẳn
e. Sắp xếp mảng giảm dần
f. Sắp xếp mảng tăng dần

31
32
33
34

You might also like