Bài Tập Opamp Có Lời Giải / 2023 / Top 11 # Xem Nhiều Nhất & Mới Nhất 11/2022 # Top View | Ictu-hanoi.edu.vn

Bài Tập Java Có Lời Giải / 2023

Bài tập Java có lời giải

Bài này cung cấp cho bạn danh sách các dạng bài tập khác nhau để bạn thực hành khi học java.

1. Bài tập java cơ bản

Trong phần này, bạn phải nắm được các kiến thức về:

Các mệnh đề if-else, switch-case.

Các vòng lặp for, while, do-while.

Các từ khóa break và continue trong java.

Các toán tử trong java.

Mảng (array) trong java.

File I/O trong java.

Xử lý ngoại lệ trong java.

Bài 01:

Viết chương trình tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 10 và 200 (tính cả 10 và 200). Các số thu được sẽ được in thành chuỗi trên một dòng, cách nhau bằng dấu phẩy.

package vn.viettuts.baitap; import java.util.ArrayList; import java.util.List; public class Bai01 { public static void main(String[] args) { for (int i = 10; i < 201; i++) { if ((i % 7 == 0) && (i % 5 != 0)) { list.add(i); } } showList(list); } if (list != null && !list.isEmpty()) { int size = list.size(); for (int i = 0; i < size - 1; i++) { System.out.print(list.get(i) + ", "); } System.out.println(list.get(size - 1)); } } }

Kết quả:

14, 21, 28, 42, 49, 56, 63, 77, 84, 91, 98, 112, 119, 126, 133, 147, 154, 161, 168, 182, 189, 196

Bài 02:

Viết một chương trình tính giai thừa của một số nguyên dương n. Với n được nhập từ bàn phím. Ví dụ, n = 8 thì kết quả đầu ra phải là 1*2*3*4*5*6*7*8 = 40320.

Sử dụng đệ quy hoặc vòng lặp để tính giai thừa.

Code mẫu: sử dụng đệ quy

package vn.viettuts.baitap; import java.util.Scanner; public class GiaiThuaDemo2 { private static Scanner scanner = new Scanner(System.in); /** * main * * @author viettuts.vn * @param args */ public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); int n = scanner.nextInt(); System.out.println("Giai thừa của " + n + " là: " + tinhGiaithua(n)); } /** * tinh giai thua * * @author viettuts.vn * @param n: so nguyen duong * @return giai thua cua so n */ public static long tinhGiaithua(int n) { return n * tinhGiaithua(n - 1); } else { return 1; } } }

Kết quả:

Nhập số nguyên dương n = 8 Giai thừa của 8 là: 40320

Bài 03:

Hãy viết chương trình để tạo ra một map chứa (i, i*i), trong đó i là số nguyên từ 1 đến n (bao gồm cả 1 và n), n được nhập từ bàn phím. Sau đó in map này ra màn hình. Ví dụ: Giả sử số n là 8 thì đầu ra sẽ là: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}.

Sử dụng vòng lặp for để lặp i từ 1 đến n.

package vn.viettuts.baitap; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Bai03 { private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); int n = scanner.nextInt(); for (int i = 1; i < n + 1; i++) { map.put(i, i * i); } System.out.println(map); } }

Kết quả:

Nhập số nguyên dương n = 10 {1=1, 2=4, 3=9, 4=16, 5=25, 6=36, 7=49, 8=64, 9=81, 10=100}

Bài 04:

Viết chương trình giải phương trình bậc 2: ax2 + bx + c = 0.

package vn.viettuts.baitap; import java.util.Scanner; /** * Giải phương trình bậc 2 * * @author viettuts.vn */ public class PhuongTrinhBac2 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập hệ số bậc 2, a = "); float a = scanner.nextFloat(); System.out.print("Nhập hệ số bậc 1, b = "); float b = scanner.nextFloat(); System.out.print("Nhập hằng số tự do, c = "); float c = scanner.nextFloat(); giaiPTBac2(a, b, c); } /** * Giải phương trình bậc 2: ax2 + bx + c = 0 * * @param a: hệ số bậc 2 * @param b: hệ số bậc 1 * @param c: số hạng tự do */ public static void giaiPTBac2(float a, float b, float c) { if (a == 0) { if (b == 0) { System.out.println("Phương trình vô nghiệm!"); } else { System.out.println("Phương trình có một nghiệm: " + "x = " + (-c / b)); } return; } float delta = b*b - 4*a*c; float x1; float x2; x1 = (float) ((-b + Math.sqrt(delta)) / (2*a)); x2 = (float) ((-b - Math.sqrt(delta)) / (2*a)); System.out.println("Phương trình có 2 nghiệm là: " + "x1 = " + x1 + " và x2 = " + x2); } else if (delta == 0) { x1 = (-b / (2 * a)); System.out.println("Phương trình có nghiệm kép: " + "x1 = x2 = " + x1); } else { System.out.println("Phương trình vô nghiệm!"); } } }

Kết quả:

Nhập hệ số bậc 2, a = 2 Nhập hệ số bậc 1, b = 1 Nhập hằng số tự do, c = -1 Phương trình có 2 nghiệm là: x1 = 0.5 và x2 = -1.0

Bài 05:

Tham khảo bảng ASCII để chuyển đổi kiểu char thành String. Hàm chr(55 + m) trong ví dụ sau:

Nếu m = 10 trả về chuỗi “A”.

Nếu m = 11 trả về chuỗi “B”.

Nếu m = 12 trả về chuỗi “C”.

Nếu m = 13 trả về chuỗi “D”.

Nếu m = 14 trả về chuỗi “E”.

Nếu m = 15 trả về chuỗi “F”.

package vn.viettuts.baitap; import java.util.Scanner; public class ConvertNumber { public static final char CHAR_55 = 55; private static Scanner scanner = new Scanner(System.in); /** * main * * @author viettuts.vn * @param args */ public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); int n = scanner.nextInt(); System.out.println("So " + n + " trong he co so 2 = " + ConvertNumber.convertNumber(n, 2)); System.out.println("So " + n + " trong he co so 16 = " + ConvertNumber.convertNumber(n, 16)); } /** * chuyen doi so nguyen n sang he co so b * * @author viettuts.vn * @param n: so nguyen * @param b: he co so * @return he co so b */ public static String convertNumber(int n, int b) { return ""; } StringBuilder sb = new StringBuilder(); int m; int remainder = n; m = remainder % b; sb.append((char) (CHAR_55 + m)); } else { sb.append(m); } } else { sb.append(remainder % b); } remainder = remainder / b; } return sb.reverse().toString(); } }

Kết quả:

Nhập số nguyên dương n = 15 So 15 trong he co so 2 = 1111 So 15 trong he co so 16 = F

Bài 06:

package vn.viettuts.baitap; import java.util.Scanner; /** * Tính dãy số Fibonacci bằng phương pháp đệ quy * * @author viettuts.vn */ public class FibonacciExample2 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); int n = scanner.nextInt(); System.out.println(n + " số đầu tiên của dãy số fibonacci: "); for (int i = 0; i < n; i++) { System.out.print(fibonacci(i) + " "); } } /** * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n */ public static int fibonacci(int n) { if (n < 0) { return -1; return n; } else { return fibonacci(n - 1) + fibonacci(n - 2); } } }

Kết quả:

Nhập số nguyên dương n = 12 12 số đầu tiên của dãy số fibonacci: 0 1 1 2 3 5 8 13 21 34 55 89

Bài 07:

Viết chương trình tìm ước số chung lớn nhất (USCLN) và bội số chung nhỏ nhất (BSCNN) của hai số nguyên dương a và b nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; public class USCLL_BSCNN_1 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập số nguyên dương a = "); int a = scanner.nextInt(); System.out.print("Nhập số nguyên dương b = "); int b = scanner.nextInt(); System.out.println("USCLN của " + a + " và " + b + " là: " + USCLN(a, b)); System.out.println("BSCNN của " + a + " và " + b + " là: " + BSCNN(a, b)); } /** * Tìm ước số chung lớn nhất (USCLN) * * @param a: số nguyên dương * @param b: số nguyên dương * @return USCLN của a và b */ public static int USCLN(int a, int b) { if (b == 0) return a; return USCLN(b, a % b); } /** * Tìm bội số chung nhỏ nhất (BSCNN) * * @param a: số nguyên dương * @param b: số nguyên dương * @return BSCNN của a và b */ public static int BSCNN(int a, int b) { return (a * b) / USCLN(a, b); } }

Kết quả:

Nhập số nguyên dương a = 10 Nhập số nguyên dương b = 24 USCLN của 10 và 24 là: 2 BSCNN của 10 và 24 là: 120

Bài 08:

Viết chương trình liệt kê tất cả các số nguyên tố nhỏ hơn n. Số nguyên dương n được nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê tất cả các số nguyên tố nhỏ hơn n. * * @author viettuts.vn */ public class BaiTap08 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập n = "); int n = scanner.nextInt(); System.out.printf("Tất cả các số nguyên tố nhỏ hơn %d là: n", n); System.out.print(2); } for (int i = 3; i < n; i+=2) { if (isPrimeNumber(i)) { System.out.print(" " + i); } } } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; } }

Kết quả:

Nhập n = 100 Tất cả các số nguyên tố nhỏ hơn 100 là: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

Bài 09:

Viết chương trình liệt kê n số nguyên tố đầu tiên trong java. Số nguyên dương n được nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê n số nguyên tố đầu tiên. * * @author viettuts.vn */ public class BaiTap09 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập n = "); int n = scanner.nextInt(); System.out.printf("%d số nguyên tố đầu tiên là: n", n); int dem = 0; int i = 2; while (dem < n) { if (isPrimeNumber(i)) { System.out.print(i + " "); dem++; } i++; } } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; } }

Kết quả:

Nhập n = 10 10 số nguyên tố đầu tiên là: 2 3 5 7 11 13 17 19 23 29

Bài 10:

Viết chương trình liệt kê tất cả số nguyên tố có 5 chữ số trong java.

package vn.viettuts.baitap; /** * Chương trình liệt kê tất cả số nguyên tố có 5 chữ số. * * @author viettuts.vn */ public class BaiTap10 { /** * main * * @param args */ public static void main(String[] args) { int count = 0; System.out.println("Liệt kê tất cả số nguyên tố có 5 chữ số:"); for (int i = 10001; i < 99999; i+=2) { if (isPrimeNumber(i)) { System.out.println(i); count++; } } System.out.println("Tổng các số nguyên tố có 5 chữ số là: " + count); } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; } }

Kết quả:

Liệt kê tất cả số nguyên tố có 5 chữ số: 10007 10009 10037 ... 99971 99989 99991 Tổng các số nguyên tố có 5 chữ số là: 8363

Bài 11:

Viết chương trình phân tích số nguyên n thành các thừa số nguyên tố trong java. Ví dụ: 100 = 2x2x5x5.

package vn.viettuts.baitap; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * Chương trình phân tích số nguyên n thành các thừa số nguyên tố. * Ví dụ: 12 = 2 x 2 x 3. * * @author viettuts.vn */ public class BaiTap11 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); int n = scanner.nextInt(); System.out.printf("Kết quả: %d = ", n); int size = listNumbers.size(); for (int i = 0; i < size - 1; i++) { System.out.print(listNumbers.get(i) + " x "); } System.out.print(listNumbers.get(size - 1)); } /** * Phân tích số nguyên thành tích các thừa số nguyên tố * * @param positiveInt * @return */ int i = 2; if (n % i == 0) { n = n / i; listNumbers.add(i); } else { i++; } } if (listNumbers.isEmpty()) { listNumbers.add(n); } return listNumbers; } }

Kết quả:

Nhập số nguyên dương n = 100 Kết quả: 100 = 2 x 2 x 5 x 5

Bài 12:

Viết chương trình tính tổng của các chữ số của môt số nguyên n trong java. Số nguyên dương n được nhập từ bàn phím. Với n = 1234, tổng các chữ số: 1 + 2 + 3 + 4 = 10

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình tính tổng của các chữ số của môt số nguyên dương n. * Tổng của các chữ số của 6677 là 6 + 6 + 7 + 7 = 26. * * @author viettuts.vn */ public class BaiTap12 { private static Scanner scanner = new Scanner(System.in); public static int DEC_10 = 10; /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); int n = scanner.nextInt(); System.out.printf("Tổng của các chữ số " + "của %d là: %d", n, totalDigitsOfNumber(n)); } /** * Tính tổng của các chữ số của một số nguyên dương * * @param n: số nguyên dương * @return */ public static int totalDigitsOfNumber(int n) { int total = 0; do { total = total + n % DEC_10; n = n / DEC_10; return total; } }

Kết quả:

Nhập số nguyên dương n = 6677 Tổng của các chữ số của 6677 là: 26

Bài 13:

Viết chương trình kiểm tra một số n là số thuận nghịch trong java. Số nguyên dương n được nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê tất cả các số thuận nghịch có 6 chữa số. * * @author viettuts.vn */ public class BaiTap13 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); int n = scanner.nextInt(); System.out.println(n + " là số thuận nghịch: " + isThuanNghich(n)); System.out.print("Nhập số nguyên dương m = "); int m = scanner.nextInt(); System.out.println(n + " là số thuận nghịch: " + isThuanNghich(m)); } /** * Kiểm tra số thuận nghịch * * @param n: số nguyên dương * @return true là số thuận nghịch * false không là số thuận nghịch */ public static boolean isThuanNghich(int n) { String numberStr = String.valueOf(n); int size = numberStr.length(); for (int i = 0; i < (size/2); i++) { if (numberStr.charAt(i) != numberStr.charAt(size - i - 1)) { return false; } } return true; } }

Kết quả:

Nhập số nguyên dương n = 123321 123321 là số thuận nghịch: true Nhập số nguyên dương m = 123451 123321 là số thuận nghịch: false

Bài 14:

Viết chương trình liệt kê các số Fibonacci nhỏ hơn n là số nguyên tố trong java. N là số nguyên dương được nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê các số Fibonacci nhỏ hơn n là số nguyên tố. * Với n được nhập từ bàn phím. * * @author viettuts.vn */ public class BaiTap14 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập số tự nhiên n = "); int n = scanner.nextInt(); System.out.printf("Các số fibonacci nhỏ hơn %d và " + "là số nguyên tố: ", n); int i = 0; while (fibonacci(i) < 100) { int fi = fibonacci(i); if (isPrimeNumber(fi)) { System.out.print(fi + " "); } i++; } } /** * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n */ public static int fibonacci(int n) { if (n < 0) { return -1; return n; } else { return fibonacci(n - 1) + fibonacci(n - 2); } } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; } }

Kết quả:

Nhập số tự nhiên n = 100 Các số fibonacci nhỏ hơn 100 và là số nguyên tố: 2 3 5 13 89

Các bài tập khác:

Viết chương trình nhập số nguyên dương n và thực hiện các chức năng sau: a) Tính tổng các chữ số của n. b) Phân tích n thành tích các thừa số nguyên tố. c) Liệt kê các ước số của n. d) Liệt kê các ước số là nguyên tố của n.

Viết chương trình liệt kệ các số nguyên có từ 5 đến 7 chữ số thảo mãn: a) Là số nguyên tố. b) Là số thuận nghịch. c) Mỗi chữ số đều là số nguyên tố. d) Tổng các chữ số là số nguyên tố.

Viết chương trình liệt kệ các số nguyên có 7 chữ số thảo mãn: a) Là số nguyên tố. b) Là số thuận nghịch. c) Mỗi chữ số đều là số nguyên tố. d) Tổng các chữ số là số thuận nghịch.

2. Bài tập chuỗi trong Java

Danh sách bài tập:

Nhập một sâu ký tự. Đếm số từ của sâu đó (mỗi từ cách nhau bởi một khoảng trắng có thể là một hoặc nhiều dấu cách, tab, xuống dòng). Ví dụ ” hoc java co ban den nang cao ” có 7 từ. Lời giải: Đếm số từ trong một chuỗi.

Nhập một sâu ký tự. Liệt kê số lần xuất hiện của các từ của sâu đó. Lời giải: Liệt kê số lần xuất hiện của các từ trong một chuỗi.

Nhập 2 sâu ký tự s1 và s2. Kiểm tra xem sâu s1 có chứa s2 không? Lời giải: Chuỗi chứa chuỗi trong java.

3. Bài tập mảng trong Java

Các bài tập trong phần này thao tác với mảng một chiều và 2 chiều trong java, bạn có thể tham khảo bài học mảng (Array) trong java

Danh sách bài tập:

Nhập một mảng số thực a0, a1, a2, …, an-1. Không dùng thêm mảng số thực nào khác (có thể dùng thêm mảng số nguyên), hãy in ra màn hình mảng trên theo thứ tự tăng dần.

Nhập 2 mảng số thực a0, a1, a2, …, am-1 và b0, b1, b2, …, bn-1. Giả sử 2 mảng này đã được sắp xếp tăng dần. Hãy tận dụng tính sắp xếp của 2 dãy và tạo dãy c0, c1, c2, …, cm+n-1 là hợp của 2 dãy trên sao cho ci cũng có thứ tự tăng dần. Lời giải: Trộn 2 mảng trong java

Viết chương trình nhập vào mảng A có n phần tử, các phần tử là số nguyên lớn hơn 0 và nhỏ hơn 100. Thực hiện các chức năng sau: a) Tìm phần tử lớn thứ nhất và lớn thứ 2 trong mảng với các chỉ số của chúng (chỉ số đầu tiên tìm được). b) Sắp xếp mảng theo thứ tự tăng dần. c) Nhập số nguyên x và chèn x vào mảng A sao cho vẫn đảm bảo tính tăng dần cho mảng A.

Viết chương trình nhập vào ma trận A có n dòng, m cột, các phần tử là số nguyên lớn hơn 0 và nhỏ hơn 100. Thực hiện các chức năng sau: a) Tìm phần tử lớn thứ nhất với chỉ số của nó (chỉ số đầu tiên tìm được). b) Tìm và in ra các phần tử là số nguyên tố của ma trận (các phần tử không nguyên tố thì thay bằng số 0). c) Sắp xếp tất cả các cột của ma trận theo thứ tự tăng dần và in kết quả ra màn hình. d) Tìm cột trong ma trận có nhiều số nguyên tố nhất.

4. Bài tập về các thuật toán sắp xếp trong Java

Bạn có thể xem các giải thuật sắp xếp trong phần cấu trúc dữ liệu và giải thuật: Giải thuật sắp xếp

5. Bài tập java nâng cao

Trong phần này, bạn phải nắm được các kiến thức về:

Lớp và đối tượng trong java.

Access modifier trong java

Các tính chất của lập trình hướng đối tượng (OOP).

Các khái niệm Java OOPs.

Collection trong java.

Xử lý ngoại lệ trong java.

Bài tập quản lý sinh viên trong Java – console

Đề bài: Viết chương trình quản lý sinh viên. Mỗi đối tượng sinh viên có các thuộc tính sau: id, name, age, address và gpa (điểm trung bình). Yêu cầu: tạo ra một menu với các chức năng sau:

/****************************************/ 1. Add student. 2. Edit student by id. 3. Delete student by id. 4. Sort student by gpa. 5. Sort student by name. 6. Show student. 0. Exit. /****************************************/

Lời giải: Bài tập quản lý sinh viên trong java – giao diện dòng lệnh

Bài tập quản lý sinh viên trong Java – Swing

Lời giải: Bài tập quản lý sinh viên trong java bằng Swing

Bài Tập Hóa 9 Có Lời Giải / 2023

Bài tập hóa 9 có lời giải hay.Bài 1: a) Cho a gam MgO tác dụng vừa đủ với m gam dung dịch HCl 3,65%. Sau phản ứng thu được (a + 55) gam muối. Tínha và C% của dung dịch muối. b) Nhúng một lá nhôm vào dung dịch CuCl2. Sau phản ứng lấy lá nhôm ra thì khối lượng dung dịch nhẹ đi 1,38g. Tính khối lượng nhôm đã phản ứng. Hướng dẫn giải: a) Phương trình phản ứng: MgO + 2HCl ( MgCl2 + H2O 40g 73g 95g a g = (a + 55)g ( a = 40mMgCl2 = = 95g; mdd HCl = = 2000g ;mdd sau pu = 2000 + 40 = 2040g C%(dd MgCl2) = ( 100% = 4,7%b) Theo định luật bảo toàn khối lượng: mAl + m CuSO4 = mAl2(SO4)3 + mCuSau phản ứng khối lượng dung dịch nhẹ đi bao nhiêu thì khối lượng lá nhôm tăng lên bấy nhiêu, khối lượng lá nhôm tăng chính là khối lượng Cu sinh ra. Gọi khối lượng lá nhôm đã phản ứng là x g.Ta có phương trình: 2Al + 3CuSO4 ( Al2(SO4)3 + 3Cu (2(27)g (3(64)g x g – x = 1,38. Giải ra ta có x = 0,54gBài 2: Cho 43,7g hỗn hợp hai kim loại Zn và Fe tác dụng với dung dịch axit clohiđric cho 15,68 lít khí H2 (ở đktc) a) Tính khối lượng mỗi kim loại trong hỗn hợp trên. b) Tính khối lượng sắt sinh ra khi cho toàn bộ khí H2 thu được ở trên tác dụng hoàn toàn với 46,4g Fe3O4.Hướng dẫn giải: a) Gọi số mol Fe là x, khối lượng của Fe là 56x Gọi số mol Zn là y, khối lượng của Zn là 65y Fe + 2HCl ( FeCl2 + H2 ( x mol 2x mol x mol Zn + 2HCl ( ZnCl2 + H2 ( y mol 2y mol y mol Ta có hệ phương trình 2 ẩn số: 56x + 65 y = 43,7 x + y = 0,7 Giải hệ phương trình ta có x = 0,2 và y = 0,5 Suy ra mZn = = 0,5 ( 65 = 32,5g; mFe = 11,2g b) Fe3O4 + 4H2 ( 3Fe + 4H2O 1 mol 4 mol 3 mol = 0,2 mol 0,7 mol x mol Dựa vào phương trình trên ta nhận số mol Fe3O4 dư, do đó tính khối lượng Fe sinh ra theo khối lượng H2. mFe = x ( 56 = ( 56 = 29,4gBài 3: Cho hỗn hợp 2 muối A2SO4 và BSO4 có khối lượng 44,2g tác dụng vừa đủ với 62,4g dung dịch BaCl2 thì cho 69,9g kết tủa BaSO4 và 2 muối tan. Tìm khối lượng 2 muối ban tan sau phản ứng.Hướng dẫn giải:Phương trình phản ứng: A2SO4 + BaCl2 ( BaSO4 ( + 2ACl BSO4 + BaCl2 ( BaSO4 ( + BCl2Áp dụng định luật bảo toàn khối lượng:Tổng khối lượng 2 muối A2SO4 và BSO4 + mBaCl2 = mBaSO4( + Tổng khối lượng 2 muối ACl và BCl 44,2 + 62,4 = 69,9 + mACl + mBCl2 mACl + mBCl2 = 36,7gBài 4: Cho a gam Fe hoà tan trong dung dịch HCl (thí nghiệm 1), sau khi cô cạn dung dịch thu được 3,1g chất rắn. Nếu cho a gam Fe và b gam Mg (thí nghiệm 2) vào dung dịch HCl (cũng với lượng như trên) sau khi cô cạn dung dịch thì thu được 3,34g chất rắn và 448ml H2.Hướng dẫn giải:Thí nghiệm 1: nH2 = = 0,02 mol Mg + 2HCl ( MgCl2 + H2 (1) Fe + 2HCl ( FeCl2 + H2 (2)Nếu khi chỉ có riêng Fe, Fe tan hết thì nFeCl2 = = 0,024 molVậy nH2 giải phóng là 0,024. Như vậy khi cho cả Mg và Fe vào dung dịch HCl thì nH2 giải phóng ít nhất cũng phải là 0,024 mol, theo đầu bài chỉ có

Bài Tập Về Mắt Có Lời Giải / 2023

Phân dạng bài tập về mắt có lời giải

Dạng 1: Xác định các đặc trưng cơ bản của mắt

VD: Khi mắt điều tiết tối đa thì ảnh của điểm cực viễn CV được tạo ra trước hay sauvõng mạc của mắt?

Khi điều tiết tối đa ảnh của điểm cực cận CC hiện lên ở võng mạc. Trạng thái mắt không đổi, ta tưởng tượng dời vật từ CC đến CV thì ảnh di chuyển cùng chiều với vật, do đó khi mắt điều tiết tối đa thì ảnh của điểm cực viễn CV được tạo ra trước võng mạc của mắt.

Bài tập tự luyện

Bài 1: Thủy tinh thể của mắt có tiêu cự khi không điều tiết là 14,8 mm. Quang tâm của thấu kính mắt cách võng mạc là 15 mm. Người này chỉ có thể đọc sách gần nhất là 40cm.

a. Xác định khoảng nhìn rõ của mắt.

b. Tính độ tụ của thủy tinh thể khi nhìn vật ở vị trí gần nhất.

ĐS: a. Từ 40 cm đến 111 cm; b. 69,17 dp

Bài 2 : Khoảng cách từ thuỷ tinh thể đến võng mạc của mắt bằng 14 mm. Tiêu cự của thuỷ tinh thể biến thiên trong khoảng từ 12,28 mm đến 13,8 mm. Tìm điểm cực cận và cực viễn của mắt.

ĐS: OCC = 107 mm; OCV = 966 mm

Dạng 2: Mắt cận thị

VD: Một người cận thị không đeo kính, nhìn rõ vật từ khoảng cách d1 = m, khi đeo kính sát mắt thì nhìn rõ vật từ khoảng cách d2 = m. Kính của người đó có độ tụ là bao nhiêu?

Hướng dẫn giải:

– Khi người này không đeo kính, nhìn rõ vật từ khoảng cách m, suy ra: OCC = m

– Khi người này đeo kính, nhìn rõ vật từ khoảng cách m, vậy vật gần nhất cách mắt một khoảng d = m. Và khi đó ảnh ảo của vật qua kính có vị trí ngay điểm cực cận của `mắt nên d’ = -OCC = – m

– Ta tìm được độ tụ của kính: D = 1/f = 1/d + 1/d’ = 4 – 6 = -2dp

Bài tập tự luyện

Bài 1 : Một người cận thị có điểm cực cận cách mắt 15 cm. Người này muốn đọc sách cách mắt 25 cm thì phải đeo kính có độ tụ là bao nhiêu ?

ĐS: -2,66 dp

Bài 2: Một người bị cận thị phải đeo kính cận sát mắt có độ tụ là – 0,5 dp để nhìn vật ở vô cực mà không phải điều tiết. Nếu muốn xem ti vi mà người đó không muốn đeo kính thì người đó có thể ngồi cách màn hình xa nhất 1 khoảng bằng bao nhiêu ?

ĐS: 2 m

Dạng 3: Mắt viễn và mắt lão

VD: Một mắt viễn thị có điểm cực cận cách mắt 100 cm. Để đọc được trang sách cách mắt 20 cm, mắt phải đeo kính gì và có độ tụ bao nhiêu?

a. Nếu đeo kính sát mắt.

b. Nếu đeo kính cách mắt 2 cm.

Hướng dẫn giải:

Để đọc được trang sách cách mắt 20 cm, mắt phải đeo kính sao cho ảnh của nó hiện lên ở điểm cực cận của mắt.

a. Do đeo kính sát mắt nên ta có: d’ = -OCC = -100 cm

– Khi người này đọc sách cách mắt 20 cm: d = 20 cm

Vậy mắt phải đeo thấu kính hội tụ và độ tụ của kính cần đeo là:

D = 1/f = 1/0,25 = 4dp

b. Do đeo kính cách mắt 2 cm nên ta có: d’ = -OCC +2 = -98 cm

– Khi người này đọc sách cách mắt 20 cm thì sách cách kính: d = 20 -2 = 18 cm

Vậy mắt phải đeo thấu kính hội tụ và độ tụ của kính cần đeo là:

D = 1/f = 1/ 0,2205 = 4,54 dp

Bài tập tự luyện

Bài 1: Một người viễn thị có điểm cực cận cách mắt 50 cm. Khi đeo kính sát mắt có độ tụ 1 dp, người này nhìn rõ được những vật gần nhất cách mắt là bao nhiêu?

ĐS: 33,3 cm

Bài 2: Một người mắt viễn thị có điểm cực cận cách mắt 40 cm. Để đọc được trang sách cách mắt 25 cm, mắt phải đeo kính gì và có độ tụ bao nhiêu?

a. Nếu đeo kính sát mắt.

b. Nếu đeo kính cách mắt 1 cm.

ĐS: a. 1,5 dp; b. 1,602 dp

Vậy là chúng ta vừa tìm hiểu xong khá nhiều phương pháp giải và dạng bài tập về phần bài tập về mắt có lời giải. Mong rằng với những dạng bài tập được nêu trên thì các bạn học sinh có thể một phần nào đó chinh phục được phần quang hình học trong đề tài “hệ thống bài tập quang hình học”. Để có thể chinh phục được những bài tập về quang hình học thì các bạn cần phải nắm rõ lí thuyết về phần này.