Tổng Hợp 10 Bài Tập Truy Vấn Sql Có Lời Giải Hay Cho Học Sinh

--- Bài mới hơn ---

  • Bài Tập Sql Giải Đề Thi Tuyển Lập Trình Viên Của Fpt Fsoft
  • 25 Ví Dụ Về Ôn Tập Sql Quản Lý Sinh Viên
  • Bài Tập Tổng Hợp Sql Kèm Đáp Án
  • Một Số Bài Tập Mẫu Sql(Phân I)
  • Pp Mới Giải Một Lớp Bài Tập Khó Vê Giới Hạn Trong Ct Thpt
  • Tổng hợp bài tập truy vấn SQL có lời giải hay :

    Câu hỏi 1 : Để quản lý Thực tập nghề nghiệp của sinh viên, người ta xây dựng một cơ sở dữ liệu có tên là ThucTap gồm các sơ đồ quan hệ sau:

    Khoa(makhoa char(10), tenkhoa char(30), dienthoai char(10))

    GiangVien(magv int, hotengv char(30), luong decimal(5,2), makhoa char(10))

    SinhVien(masv int, hotensv char(30), makhoa char(10), namsinh int, quequan char(30))

    DeTai(madt char(10), tendt char(30), kinhphi int, NoiThucTap char(30))

    HuongDan(masv int, madt char(10), magv int, ketqua decimal(5,2))

    Các lệnh SQL tạo bảng Đầu tiên bạn cần thực hiện lệnh tạo Data Base trước như sau : Nhập dữ liệu cho từng bảng : Thêm dữ liệu vào bảng Khoa :

    Thêm dữ liệu vào bảng Giảng Viên :

    Thêm dữ liệu vào bảng SInh Viên : Thêm dữ liệu vào bảng Đề Tài : Thêm dữ liệu vào bảng Hướng Dẫn :

    Câu hỏi 2 : Cũng cùng nội dung câu hỏi trên bạn hãy đưa ra thông tin gồm mã số, họ tên và tên khoa của tất cả các giảng viên .

    SELECT GV.Magv, GV.Hotengv, K.Tenkhoa

    Câu hỏi 3 : Sử dụng lệnh xuất ra mã số, họ tên, tên khoa của các giảng viên hướng dẫn từ 3 sinh viên trở lên.

    Câu hỏi 4 : Sử dụng lệnh SQL để xuất ra thông tin về những sinh viên chưa có điểm thực tập .

    Câu hỏi 5 : Thực hiện lệnh SQL xuất ra số điện thoại của khoa mà sinh viên có tên ‘Le van son’ đang theo học .

    Câu hỏi 6 : Sử dụng lệnh truy vấn SQL lấy ra mã số và tên các đề tài có nhiều hơn 2 sinh viên tham gia thực tập .

    Câu hỏi 7 : Sử dụng câu lệnh truy vấn SQL lấy ra mã số, tên đề tài của đề tài có kinh phí cao nhất .

    Câu hỏi 8 : Sử dụng câu lệnh SQL xuất ra Tên khoa, Số lượng sinh viên của mỗi khoa .

    Câu hỏi 9 : Sử dụng truy vấn SQL xuất ra mã số, họ tên và điểm của các sinh viên khoa ‘DIALY và QLTN’ .

    SELECT SV.Masv,SV.Hotensv,HD.KetQua

    Câu hỏi 10 : Sử dụng câu lệnh SQL xuất ra danh sách gồm Mã số, Họ tên và Tuổi của các sinh viên khoa ‘TOAN’ .

    --- Bài cũ hơn ---

  • Bài Tập Sql Cơ Bản
  • Bai Tap Va Loi Giai Sql
  • Giải Bài Tập Toán 9, Hướng Dẫn Giải Bài Trang Sgk Toán Lớp 9 Đại Số, H
  • Các Công Thức Hóa Học Lớp 11 Giải Nhanh Mọi Dạng Bài Tập Hiđrocabon
  • Pp Giải Bài Tập Về Anken
  • Bài Tập Sql Cơ Bản

    --- Bài mới hơn ---

  • Tổng Hợp 10 Bài Tập Truy Vấn Sql Có Lời Giải Hay Cho Học Sinh
  • Bài Tập Sql Giải Đề Thi Tuyển Lập Trình Viên Của Fpt Fsoft
  • 25 Ví Dụ Về Ôn Tập Sql Quản Lý Sinh Viên
  • Bài Tập Tổng Hợp Sql Kèm Đáp Án
  • Một Số Bài Tập Mẫu Sql(Phân I)
  • Bài 1: Để quản lý Thực tập nghề nghiệp của sinh viên, người ta xây dựng một cơ sở dữ liệu có tên là ThucTap gồm các sơ đồ quan hệ sau:

    Khoa(makhoa char(10), tenkhoa char(30), dienthoai char(10))

    GiangVien(magv int, hotengv char(30), luong decimal(5,2), makhoa char(10))

    SinhVien(masv int, hotensv char(30), makhoa char(10), namsinh int, quequan char(30))

    DeTai(madt char(10), tendt char(30), kinhphi int, NoiThucTap char(30))

    HuongDan(masv int, madt char(10), magv int, ketqua decimal(5,2))

    A. Sử dụng SSMS để tạo lập và nhập dữ liệu cho CSDL

    B. Chỉ sử dụng 01 lệnh SQL trả lời các yêu cầu sau:

    I

    1. Đưa ra thông tin gồm mã số, họ tênvà tên khoa của tất cả các giảng viên
    2. Đưa ra thông tin gồm mã số, họ tênvà tên khoa của các giảng viên của khoa ‘DIA LY va QLTN’
    3. Cho biết số sinh viên của khoa ‘CONG NGHE SINH HOC’
    4. Đưa ra danh sách gồm mã số, họ tênvà tuổi của các sinh viên khoa ‘TOAN’
    5. Cho biết số giảng viên của khoa ‘CONG NGHE SINH HOC’
    6. Cho biết thông tin về sinh viên không tham gia thực tập
    7. Đưa ra mã khoa, tên khoa và số giảng viên của mỗi khoa
    8. Cho biết số điện thoại của khoa mà sinh viên có tên ‘Le van son’ đang theo học

    II

    1. Cho biết mã số và tên của các đề tài do giảng viên ‘Tran son’ hướng dẫn
    2. Cho biết tên đề tài không có sinh viên nào thực tập
    3. Cho biết mã số, họ tên, tên khoa của các giảng viên hướng dẫn từ 3 sinh viên trở lên.
    4. Cho biết mã số, tên đề tài của đề tài có kinh phí cao nhất
    5. Cho biết mã số và tên các đề tài có nhiều hơn 2 sinh viên tham gia thực tập
    6. Đưa ra mã số, họ tên và điểm của các sinh viên khoa ‘DIALY và QLTN’
    7. Đưa ra tên khoa, số lượng sinh viên của mỗi khoa
    8. Cho biết thông tin về các sinh viên thực tập tại quê nhà
    9. Hãy cho biết thông tin về những sinh viên chưa có điểm thực tập
    10. Đưa ra danh sách gồm mã số, họ tên các sinh viên có điểm thực tập bằng 0

    Ok xong phần bài tập sql cơ bản nha !!! Cái này làm nhiều ắt sẽ quen tay, mà cái nào chả vậy 😀

    Cho đi kiến thức bạn đang có là cách tuyệt vời để nâng cao trình độ của bản thân!

    --- Bài cũ hơn ---

  • Bai Tap Va Loi Giai Sql
  • Giải Bài Tập Toán 9, Hướng Dẫn Giải Bài Trang Sgk Toán Lớp 9 Đại Số, H
  • Các Công Thức Hóa Học Lớp 11 Giải Nhanh Mọi Dạng Bài Tập Hiđrocabon
  • Pp Giải Bài Tập Về Anken
  • Bài Tập Tự Luận Hữu Cơ 11 Tổng Hợp Từng Chương
  • Một Số Bài Tập Mẫu Sql(Phân I)

    --- Bài mới hơn ---

  • Pp Mới Giải Một Lớp Bài Tập Khó Vê Giới Hạn Trong Ct Thpt
  • Luyện Tập Giới Hạn Hàm Số
  • Chuyên Đề Giới Hạn Của Dãy Số Và Hàm Số
  • Giải Bài Tập Về Định Giá Trái Phiếu
  • Một Số Bài Tập Nâng Cao Hóa 8 Có Đáp Án
  • Khách hàng đặt hàng cho cty thông qua các đơn đặt hàng. Thông tin chung về các đơn đạt hàng được lưu trữ trong DONDATHANG (mỗi một đơn đặt hàng phải do một nhân viên của cty lập và do đó bảng này có quan hệ với bảng NHANVIEN)

    Thông tin chi tiết của các đơn đặt hàng (đặt mua hàng gì, số lượng, giá cả, …) được lưu trữ chi tiết trong bảng CHITIETDATHANG. Bảng này có quan hệ với DONDATHANG và MATHANG.

    Sử dụng câu lệnh sau để tạo cơ sở dữ liệu:

    /*2. Những đơn đặt hàng nào yêu cầu giao hàng ngay tại cty đặt hàng và những đơn đó là của công ty nào? */

    /*3. Những mặt hàng nào chưa từng được khách hàng đặt mua?*/

    /*4. Những nhân viên nào của công ty chưa từng lập bất kỳ một hoá đơn đặt hàng nào? */

    /*5. Trong năm 2003, những mặt hàng nào chỉ được đặt mua đúng một lần*/

    /*6. Hãy cho biết mỗi một khách hàng đã phải bỏ ra bao nhiêu tiền để đặt mua hàng của công ty? */

    /*7. Mỗi một nhân viên của công ty đã lập bao nhiêu đơn đặt hàng (nếu nhân viên chưa hề lập một hoá đơn nào thì cho kết quả là 0) */

    /*8. Cho biết tổng số tiền hàng mà cửa hàng thu được trong mỗi tháng của năm 2003 (thời được gian tính theo ngày đặt hàng). */

    /*9. Hãy cho biết tổng số lượng hàng của mỗi mặt hàng mà cty đã có (tổng số lượng hàng hiện có và đã bán). */

    /*10. Nhân viên nào của cty bán được số lượng hàng nhiều nhất và số lượng hàng bán được của nhân viên này là bao nhiêu?*/

    /*11. Mỗi một đơn đặt hàng đặt mua những mặt hàng nào và tổng số tiền mà mỗi đơn đặt hàng phải trả là bao nhiêu? */

    /*12. Hãy cho biết mỗi một loại hàng bao gồm những mặt hàng nào, tổng số lượng hàng của mỗi loại và tổng số lượng của tất cả các mặt hàng hiện có trong công ty là bao nhiêu? */

    /*13. Thống kê xem trong năm 2003, mỗi một mặt hàng trong mỗi tháng và trong cả năm bán được với số lượng bao nhiêu.*/

    /*14. Cập nhật lại giá trị NGAYCHUYENHANG của những bản ghi có giá trị NGAYCHUYENHANG chưa xác định (NULL) trong bảng DONDATHANG bằng với giá trị của trường NGAYDATHANG.*/

    /*15. Cập nhật giá trị của trường NOIGIAOHANG trong bảng DONDATHANG bằng địa chỉ của khách hàng đối với những đơn đặt hàng chưa xác định được nơi giao hàng (có giá trị trường NOIGIAOHANG bằng NULL)*/

    /*16. Cập nhật lại dữ liệu trong bảng KHACHHANG sao cho nếu tên công ty và tên giao dịch của khách hàng trùng với tên công ty và tên giao dịch của một nhà cung cấp nào đó thì địa chỉ, điện thoại, fax và email phải giống nhau.*/

    /*17. Tăng lương lên gấp rưỡi cho những nhân viên bán được số lượng hàng nhiều hơn 100 trong năm 2003 */

    *18. Tăng phụ cấp lên bằng 50% lương cho những nhân viên bán được hàng nhiều nhất.*/

    /*19. Giảm 25% lương của những nhân viên trong năm 2003 ko lập được bất kỳ đơn đặt hàng nào */

    /*20. Giả sử trong bảng DONDATHANG có them trường SOTIEN cho biết số tiền mà khách hàng phải trả trong mỗi dơn đặt hàng. Hãy tính giá trị cho trường này.*/

    /*21. Xoá khỏi bảng MATHANG những mặt hàng có số lượng bằng 0 và không được đặt mua trong bất kỳ đơn đặt hàng nào.*/

    --- Bài cũ hơn ---

  • Bài Tập Tổng Hợp Sql Kèm Đáp Án
  • 25 Ví Dụ Về Ôn Tập Sql Quản Lý Sinh Viên
  • Bài Tập Sql Giải Đề Thi Tuyển Lập Trình Viên Của Fpt Fsoft
  • Tổng Hợp 10 Bài Tập Truy Vấn Sql Có Lời Giải Hay Cho Học Sinh
  • Bài Tập Sql Cơ Bản
  • Một Số Bài Tập Mẫu Sql(Phần Iii)

    --- Bài mới hơn ---

  • Bài 7: Thiết Kế Mạch Đếm
  • Đề Thi Nghiệp Vụ Ngoại Thương Có Đáp Án
  • Bài Tập Chương Iii Otomat Hữu Hạn Và Biểu Thức Chính Quy
  • Bài Giảng Và Ngân Hàng Đề Thi Otomat
  • Giải Bài Tập Round Robin
  • CREATE TABLE ( (30) NOT NULL, (30) NULL, CONSTRAINT IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’U’)) CREATE TABLE ( (30) NOT NULL, (30) NULL, (30) NULL, CONSTRAINT IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’FN’, N’IF’, N’TF’, N’FS’, N’FT’)) execute dbo.sp_executesql @statement = N’CREATE FUNCTION (@ngay DATETIME) RETURNS INT AS BEGIN DECLARE @thang INT, @quy INT SET @thang = month(@ngay) IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’U’)) CREATE TABLE ( (30) NOT NULL, (30) NULL, CONSTRAINT IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’U’)) CREATE TABLE ( NOT NULL, NULL, (30) NULL, (30) NULL, CONSTRAINT IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’U’)) CREATE TABLE ( (30) NOT NULL, (30) NULL, CONSTRAINT IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’FN’, N’IF’, N’TF’, N’FS’, N’FT’)) execute dbo.sp_executesql @statement = N’create function (@SlsPerID nvarchar(10)) returns nvarchar(10) as begin declare @hienthi nvarchar(10) declare @name nvarchar(50) select @name = name from SalesPerson where @SlsPerID= SlsPerID from Customer where Name = @name) SET @hienthi = N”không” IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’P’, N’PC’)) EXEC dbo.sp_executesql @statement = N’create PROCEDURE DECLARE contro CURSOR FOR select s.SlsPerID, s.Name, isnull(sum(x.OrdAmt), 0) as OrdAmt from xswSalesOrd x right join SalesPerson s on x.SlsPerID = s.SlsPerID where Year(x.OrderDate) = 2010 or x.OrderDate IS NULL group by s.SlsPerID, s.Name OPEN contro DECLARE @SlsPerID NVARCHAR(10) DECLARE @Name NVARCHAR(50) DECLARE @OrdAmt money declare @HienThi nvarchar(100) /*Bắt đầu duyệt qua các dòng trong kết quả truy vấn*/ FETCH NEXT FROM contro INTO @SlsPerID,@Name,@OrdAmt WHILE @@FETCH_STATUS=0 set @HienThi = N”Không Đạt Yêu Cầu Doanh Số” set @HienThi = N”Đạt Yêu Cầu Doanh Số” INSERT INTO #temp(SlsPerID, Name, OrdAmt, HienThi) SELECT @SlsPerID, @Name, @OrdAmt, @HienThi FETCH NEXT FROM contro INTO @SlsPerID,@Name,@OrdAmt /*Đóng con trỏ và giải phóng vùng nhớ*/ CLOSE contro DEALLOCATE contro select * from #temp drop table #temp IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’FN’, N’IF’, N’TF’, N’FS’, N’FT’)) execute dbo.sp_executesql @statement = N’CREATE FUNCTION (@giaBan MONEY, @ngayBan DATETIME) SET @chietKhau = CASE dbo.fncQuy(@ngayBan) WHEN 1 THEN @giaBan*0.1 IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’P’, N’PC’)) EXEC dbo.sp_executesql @statement = N’create proc (@startDate varchar(10)=null, @endDate varchar(10)=null) select @Start=Convert(datetime,@startDate,103) select @End=Convert(datetime,@endDate,103) print ”Loi: Ngay bat dau lon hon ngay ket thuc.”; SELECT xswSalesOrd.CustID, month(OrderDate) AS Thang, COUNT(xswSalesOrd.CustID) AS SoLanMuaHang FROM Customer INNER JOIN xswSalesOrd ON Customer.CustID=xswSalesOrd.CustID WHERE ((xswSalesOrd.OrderDate) BETWEEN @Start AND @End) GROUP BY xswSalesOrd.CustID,Month(OrderDate) IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’P’, N’PC’)) EXEC dbo.sp_executesql @statement = N’create proc select @Start=Convert(datetime,”01-Jan-2010”,103) select @End=Convert(datetime,”31-Mar-2010”,103) select top 10 xswSlsOrdDet.InvtID, sum (LineAmt) as doanhso from (xswSalesOrd inner join xswSlsOrdDet on xswSalesOrd.OrderNbr= xswSlsOrdDet.OrderNbr) where ((OrderDate) between @Start and @End) group by xswSlsOrdDet.InvtID order by sum(LineAmt) desc IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'’) AND type in (N’FN’, N’IF’, N’TF’, N’FS’, N’FT’)) execute dbo.sp_executesql @statement = N’CREATE FUNCTION (@maHang NVARCHAR(10), @maDonHang NVARCHAR(10)) DECLARE @chietKhau MONEY, SELECT @ngayBan = OrderDate WHERE OrderNbr = @maDonHang WHERE OrderNbr = @maDonHang AND InvtID = @maHang SET @chietKhau = dbo.fncTinhChietKhau(@giaBan, @ngayBan) IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'’) AND parent_object_id = OBJECT_ID(N'’)) ALTER TABLE WITH CHECK ADD CONSTRAINT ) REFERENCES (... FOREIGN KEY(.) IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'’) AND parent_object_id = OBJECT_ID(N'’)) ALTER TABLE WITH CHECK ADD CONSTRAINT ) REFERENCES ([InvtID]) Câu 1:

    Hiển thị danh sách nhân viên bán hàng gồm:

    Chú ý: viết user-function để nhận biết nhân viên và khách hàng.

    Câu 2:

    Viết Store-procedure hiển thị danh sách nhân viên bán hàng cùng doanh số bán hàng trong năm 2010, trường hợp có doanh số <=100 triệu thì hiển thị “Ko đạt yêu cầu doanh số”, ngược lại hiển thị “Đạt yêu cầu doanh số”.

    Chú ý: sử dụng cursor.

    Câu 3:

    Viết user-function để tính toán chiết khấu cho mã hàng trong tất cả các đơn hàng trong năm 2010, mã hàng được truyền vào thông qua tham số của function.

    Cụ thể như sau:

    Chú ý: giá trị chiết khấu sau khi tính toán được update vào trường User3 trong table xswSlsOrdDet. Sử dụng transaction.

    –Them Column User3 vao table xswSlsOrdDet

    — Bắt đầu cập nhật BEGIN TRAN

    Câu 4:

    Viết store-procedure liệt kê 10 mặt hàng có doanh số cao nhất trong khoảng thời gian từ 01-Jan-2010 đến hết 31-Mar-2010.

    Câu 5:

    Viết store-procedure hiển thị danh sách những khách hàng có số lần mua hàng trong từng tháng bằng với giá trị truyền vào thông qua tham số của store-procedure trong khoảng thời gian từ ngày đến ngày cũng được truyền vào qua tham số của store-procedure.

    --- Bài cũ hơn ---

  • Transistor Trường Fet, Nguyễn Hoàng Hiệp
  • Bài Tập Cấu Trúc Dữ Liệu Và Giải Thuật Tổng Hợp
  • Hơn 100 Bài Tập Python Có Lời Giải (Code Mẫu)
  • Giải Thuật Và Lập Trình: §6. Cây (Tree)
  • Bài Tập Diode Có Lời Giải Bai Tap Diode 2 Doc
  • Bài Tập Tổng Hợp Sql Kèm Đáp Án

    --- Bài mới hơn ---

  • Một Số Bài Tập Mẫu Sql(Phân I)
  • Pp Mới Giải Một Lớp Bài Tập Khó Vê Giới Hạn Trong Ct Thpt
  • Luyện Tập Giới Hạn Hàm Số
  • Chuyên Đề Giới Hạn Của Dãy Số Và Hàm Số
  • Giải Bài Tập Về Định Giá Trái Phiếu
  • 2. 1 Cho biết danh sách các đối tác cung cấp hàng cho công ty.

    2. 2 Mã hàng, tên hàng và số lượng của các mặt hàng hiện có trong công ty.

    2. 3 Họ tên và điạ chỉ và năm bắt đầu làm việc của các nhân viên trong công ty.

    2. 4 địa chỉ và điện thoại của nhà cung cấp có tên giao dch VINAMILK là gì?

    2. 5 Cho biết mã và tên của các mặt hàng có giá lớn hơn 100000 và số lượng có ít hn

    2. 6 Cho biết mỗi mặt hàng trong công ty do ai cung cấp.

    2. 7 Công ty Vit Tin đã cung cp nhng mt hàng nào?

    2. 8 Loại hàng thực phẩm do những công ty nào cung cấp và địa chỉ của các công ty đó

    2. 9 Những khách hàng nào (tên giao dịch) đã đặt mua mặt hàng Sữa hộp XYZ của

    2. 10 đơn đặt hàng số 1 do ai đặt và do nhân viên nào lập, thi gian và địa điểm giao

    hàng là ở đâu?

    khachhang.dienthoai = nhacungcap.dienthoai, chúng tôi = nhacungcap.fax, khachhang.email = nhacungcap.email FROM nhacungcap WHERE khachhang.tencongty = nhacungcap.tencongty AND khachhang.tengiaodich = nhacungcap.tengiaodich 2.37 UPDATE nhanvien SET luongcoban=luongcoban*1.5 WHERE manhanvien = (SELECT manhanvien FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon=chitietdathang.sohoadon WHERE manhanvien=nhanvien.manhanvien GROUP BY manhanvien 2.38 UPDATE nhanvien SET phucap=luongcoban/2 WHERE manhanvien IN (SELECT manhanvien FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon=chitietdathang.sohoadon GROUP BY manhanvien (SELECT SUM(soluong) FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon=chitietdathang.sohoadon GROUP BY manhanvien)) 2.39 UPDATE nhanvien SET luongcoban=luongcoban*0.85 WHERE NOT EXISTS (SELECT manhanvien FROM dondathang WHERE manhanvien=nhanvien.manhanvien) Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom 2.40 UPDATE dondathang SET sotien = (SELECT SUM(soluong*giaban+soluong*giaban*mucgiamgia) FROM chitietdathang WHERE sohoadon=dondathang.sohoadon GROUP BY sohoadon) 2.41 DELETE FROM nhanvien 2.42 DELETE FROM dondathang WHERE ngaydathang<'1/1/2000' 2.43 DELETE FROM loaihang WHERE NOT EXISTS (SELECT mahang FROM mathang WHERE maloaihang=loaihang.maloaihang) 2.44 DELETE FROM khachhang WHERE NOT EXISTS (SELECT sohoadon FROM dondathang WHERE makhachhang=khachhang.makhachhang) 2.45 DELETE FROM mathang WHERE soluong=0 AND NOT EXISTS (SELECT sohoadon FROM chitietdathang WHERE mahang=mathang.mahang) Bài 4 Q1: Bổ sung ràng buộc thiết lập giá trị mặc định bằng 1 cho cột SOLUONG và bằng 0 cho cột MUCGIAMGIA trong bảng CHITIETDATHANG Q2: Bổ sung cho bảng DONDATHANG ràng buộc kiểm tra ngày giao hàng và ngày chuyển hàng phải sau hoặc bằng với ngày đặt hàng. Q3 Bổ sung ràng buộc cho bảng NHANVIEN để đảm bảo rằng một nhân viên chỉ có thể làm việc trong công ty khi đủ 18 tuổi và không quá 60 tuổi. Q4 Với các bảng đã tạo được, câu lệnh: DROP TABLE nhacungcap có thể thực hiện được không? Tại sao? Q5 Cho khung nhìn được định nghĩa như sau: CREATE VIEW view_donhang AS SELECT dondathang.sohoadon,makhachhang,manhanvien, ngaydathang,ngaygiaohang,ngaychuyenhang, noigiaohang,mahang, giaban,soluong,mucgiamgia FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon = chitietdathang.sohoadon a. Có thể thông qua khung nhìn này để bổ sung dữ liệu cho bảng DONDATHANG được không? b. Có thể thông qua khung nhìn này để bổ sung dữ liệu cho bảng Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom CHITIETDATHANG được không? Q6 Với khung nhìn được định ngha như sau: CREATE VIEW view_donhang AS SELECT dondathang.sohoadon,makhachhang,manhanvien, ngaydathang,ngaygiaohang,ngaychuyenhang, noigiaohang,mahang, giaban*soluong as thanhtien, mucgiamgia FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon = chitietdathang.sohoadon a. Có thể thông qua khung nhìn này để xoá hay cập nhật dữ liệu trong bảng DONDATHANG được không? b. Có thể thông qua khung nhìn này để cập nhật dữ liệu trong bảng CHITIETDATHANG được không? Lời giải Q1 ALTER TABLE chitietdathang ADD CONSTRAINT df_chitietdathang_soluong DEFAULT(1) FOR soluong, CONSTRAINT df_chitietdathang_mucgiamgia DEFAULT(0) FOR Mucgiamgia Q2 ALTER TABLE dondathang ADD CONSTRAINT chk_dondathang_ngay Q3 ALTER TABLE nhanvien ADD CONSTRAINT chk_nhanvien_ngaylamviec CHECK (datediff(yy,ngaysinh,ngaylamviec) BETWEEN 18 AND 60) Q4 Câu lệnh không thực hiện được do bảng cần xoá đang được tham chiếu bởi bảng MATHANG Q5 a. Không. b. Không Q6 a.Có thể cập nhật nhưng không thể xoá b. Có thể được Bài Dụa trên cơ sở dữ liệu bài tập chương 2, thực hiện các yêu cầu sau: 5.1 Tạo thủ tục lưu trữ để thông qua thủ tục này có thể bổ sung thêm một bản ghi mới cho bảng MATHANG (thủ tục phải thực hiện kiểm tra tính hợp lệ cửa dữ liệu cần bổ sung: không trùng khoá chính và đảm bảo toàn vẹn tham chiếu) 5.2 Tạo thủ tục lưu trữ có chức năng thống kê tổng số lượng hàng bán được của một mặt hàng có mã bất kỳ (mã mặt hàng cần thống kê là tham số Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom Của thủ tục). 5.3 Viết hàm trả về một bảng trong đó cho biết tổng số lượng hàng bán của mỗi mặt hàng. Sử dụng hàm này thống kê xem tổng số lượng hàng (hiện có và đã bán) của mỗi mặt hàng là bao nhiêu. 5.4 Viết trigger cho bảng CHITIETDATHANG theo yêu cầu sau: · Khi một bản ghi mới được bổ sung vào bảng này thì giảm số lượng hàng hiện có nếu số lượng hàng hiện có lớn hơn hoặc bằng số lượng hàng được bán ra. Ngược lại thì huỷ bỏ thao tác bổ sung. · Khi cập nhật lại số lượng hàng đươc bán, kiểm tra số lượng hàng được cập nhật lại có phù hợp hay không (số lượng hàng bán ra không Được vượt quá số lượng hàng hiện có và không được nhỏ hơn 1). Nếu dữ liệu hợp lệ thì giảm (hoặc tăng) số lượng hàng hiện có trong công ty, ngượ lại thì huỷ bỏ thao tác cập nhật. 5.5 Viết trigger cho bảng CHITIETDATHANG sao cho chỉ chấp nhận giá hàng bán ra phải nhỏ hơn hoặc bằng giá gốc (giá của mặt hàng trong bảng MATHANG) 5.6 quản lý các bản tin trong một Website, người ta sử dụng hai bảng sau: Bảng LOAIBANTIN (loại bản tin) CREATE TABLE loaibantin ( maphanloai INT NOT NULL PRIMARY KEY, tenphanloai NVARCHAR(100) NOT NULL , bantinmoinhat INT DEFAULT(0) ) Bng BANTIN (bn tin) CREATE TABLE bantin ( maso INT NOT NULL PRIMARY KEY, ngayduatin DATETIME NULL , tieude NVARCHAR(200) NULL , noidung NTEXT NULL , maphanloai INT NULL FOREIGN KEY REFERENCES loaibantin(maphanloai) ) Trong bng LOAIBANTIN, giá trị cột BANTINMOINHAT cho biết mã số của bản tin thuộc loại tương ứng mới nhất (dược bổ sung sau cùng). Hãy viết các trigger cho bảng BANTIN sao cho: · Khi một bản tin mới được bổ sung, cập nhật lại cột BANTINMOINHAT Của dòng tương ứng với loại bản tin vừa bổ sung. · Khi một bản tin bị xoá, cập nhật lại giá trị của cột BANTINMOINHAT trong bảng LOAIBANTIN của dòng ứng với loại bản tin vừa xóa là mã số của bản tin trước đó (dựa vào ngày đưa tin). Nếu không còn bản tin nào cùng loại thì giá trị của cột này bằng 0. Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom · Khi cập nhật lại mã số của một bản tin và nếu nó là bản tin mới nhất thì cập nhật lại giá trị cột BANTINMOINHAT là mã số mới. Lời giải 5.1 CREATE PROCEDURE sp_insert_mathang( @mahang NVARCHAR(10), @tenhang NVARCHAR(50), @macongty NVARCHAR(10) = NULL, @maloaihang INT = NULL, @soluong INT = 0, @donvitinh NVARCHAR(20) = NULL, @giahang money = 0) AS IF NOT EXISTS(SELECT mahang FROM mathang WHERE [email protected]) IF (@macongty IS NULL OR EXISTS(SELECT macongty FROM nhacungcap WHERE [email protected])) AND (@maloaihang IS NULL OR EXISTS(SELECT maloaihang FROM loaihang WHERE [email protected])) INSERT INTO mathang VALUES(@mahang,@tenhang, @macongty,@maloaihang, @soluong,@donvitinh,@giahang) 5.2 CREATE PROCEDURE sp_thongkebanhang(@mahang NVARCHAR(10)) AS SELECT mathang.mahang,tenhang, SUM(chitietdathang.soluong) AS tongsoluong FROM mathang LEFT OUTER JOIN chitietdathang ON mathang.mahang=chitietdathang.mahang WHERE [email protected] GROUP BY mathang.mahang,tenhang 5.3 nh ngha hàm: CREATE FUNCTION func_banhang() RETURNS TABLE AS RETURN (SELECT mathang.mahang,tenhang, CASE WHEN sum(chitietdathang.soluong) IS NULL THEN 0 ELSE sum(chitietdathang.soluong) END AS tongsl Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom FROM mathang LEFT OUTER JOIN chitietdathang ON mathang.mahang = chitietdathang.mahang GROUP BY mathang.mahang,tenhang) S dng hàm ã nh ngha: SELECT a.mahang,a.tenhang,soluong+tongsl FROM mathang AS a INNER JOIN dbo.func_banhang() AS b ON a.mahang=b.mahang 5.4 CREATE TRIGGER trg_chitietdathang_insert ON chitietdathang FOR INSERT AS BEGIN DECLARE @mahang NVARCHAR(100) DECLARE @soluongban INT DECLARE @soluongcon INT SELECT @mahang=mahang,@soluongban=soluong FROM inserted SELECT @soluongcon=soluong FROM mathang WHERE [email protected] UPDATE mathang SET [email protected] WHERE [email protected] ELSE ROLLBACK TRANSACTION END CREATE TRIGGER trg_chitietdathang_update_soluong ON chitietdathang FOR UPDATE AS IF UPDATE(soluong) BEGIN IF EXISTS(SELECT sohoadon FROM inserted WHERE soluong<0) ROLLBACK TRANSACTION ELSE BEGIN UPDATE mathang SET soluong=soluong- (SELECT SUM(inserted.soluong-deleted.soluong) FROM inserted INNER JOIN deleted ON inserted.sohoadon=deleted.sohoadon AND inserted.mahang=deleted.mahang WHERE inserted.mahang=mathang.mahang GROUP BY inserted.mahang) WHERE mahang IN (SELECT DISTINCT mahang Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom FROM inserted) IF EXISTS(SELECT mahang FROM mathang WHERE soluong<0) ROLLBACK TRANSACTION END END 5.5 CREATE TRIGGER trg_chitietdathang_giaban ON chitietdathang FOR INSERT,UPDATE AS IF UPDATE(giaban) IF EXISTS(SELECT inserted.mahang FROM mathang INNER JOIN inserted ON mathang.mahang=inserted.mahang ROLLBACK TRANSACTION Tổng hợp SQL - SGL - Plassma :

    --- Bài cũ hơn ---

  • 25 Ví Dụ Về Ôn Tập Sql Quản Lý Sinh Viên
  • Bài Tập Sql Giải Đề Thi Tuyển Lập Trình Viên Của Fpt Fsoft
  • Tổng Hợp 10 Bài Tập Truy Vấn Sql Có Lời Giải Hay Cho Học Sinh
  • Bài Tập Sql Cơ Bản
  • Bai Tap Va Loi Giai Sql
  • Tài Liệu Bài Tập Về Diode Có Lời Giải, Bài Tập Diode Có Lời Giải

    --- Bài mới hơn ---

  • Des Là Gì? Code Ví Dụ Des Bằng Java
  • Hệ Mật Mã Khối Và Các Thuật Toán Mã Hóa Khối Kinh Điển: Des
  • Bài Tập Toán Lớp 2 Cơ Bản Và Nâng Cao Cho Bé
  • Đáp Án Bài Tập Csdl
  • Giới Hạn Của Hàm Hai Biến Số
  • Đang xem: Bài tập về diode có lời giải

    Share Like Download …

    3 Comments 33 Likes Statistics Notes

    12 hours ago   Delete Reply Block

    250 bai tap_kt_dien_tu_0295

    --- Bài cũ hơn ---

  • Bảo Hiểm Là Gì? Các Thuật Ngữ Cơ Bản Nhất Trong Bảo Hiểm Bạn Nên Biết
  • Đề Cương Ôn Tập Bảo Hiểm Xã Hội Có Đáp Án
  • Bài Tập Định Khoản Kế Toán Tiền Lương Có Lời Giải
  • 3 Mẫu Bài Tập Nghiệp Vụ Kế Toán Tiền Lương Có Lời Giải Đáp Án
  • Mức Hưởng Hàng Tháng 2022
  • Sql Server – Function Và Trigger

    --- Bài mới hơn ---

  • Dưới Đây Là Một Số Câu Hỏi Trong Bài Tập Nghiệp Vụ Ngoại Thương Incoterm
  • Bài Tập Hệ Điều Hành
  • Lập Trình Trực Quan
  • Xml: Bài 4.1. Lược Đồ Xml
  • 1000 Bài Tập Lập Trình C/c++ Có Lời Giải Giành Cho Sv
  • Trong bài trước mình đã giới thiệu về Stored Procedure , Trong bài này chúng ta sẽ tìm hiểu về Function và Trigger – một phần cũng không kém phần quan trong trong lập trình với cơ sở dữ liệu

    1. Hàm – Functions

    Cũng giống như Stored Procedure Hàm là một đối tượng trong cơ sở dữ liệu bao gồm một tập nhiều câu lệnh SQL được nhóm lại với nhau thành một nhóm. Điểm khác biệt giữa hàm và thủ tục là hàm trả về một giá trị thông qua tên hàm. Điều này cho phép ta sử dụng hàm như là một thành phần của một biểu thức chẳng hạn như trong các câu lệnh truy vấn hay các câu lệnh thực hiện cập nhật dữ liệu

    Trong SQL có rất nhiều các hàm được định nghĩa sẵn (Được chia theo nhóm – Trong 1 Database bạn chọn Programmability/Functions/System Functions) như các hàm về chuỗi (String Functions), các hàm về ngày tháng (Date and Time Functions), Các hàm toán học (Mathematical Function), … Ngoài những hàm do hệ quản trị cơ sở dữ liệu cung cấp sẵn, bạn có thể tự xây dựng các hàm nhằm phục vụ cho mục đích riêng của mình – Các hàm do người dùng định nghĩa. Các hàm do người dùng định nghĩa thường có 2 loại: Loại 1 là Hàm với giá trị trả về là “dữ liệu kiểu bảng” – Table-valued Functions; Loại 2 là Hàm với giá trị trả về là một giá trị – Scalar-valued Functions và các hàm này cũng sẽ được Hệ quản trị phân thành 2 nhóm.

    Các hàm sẵn có của SQL bạn tự tìm hiểu và sử dụng, trong bài viết này mình giới thiệu qua về những hàm “Do người dùng định nghĩa”.

    Cú pháp của hàm như sau:

    CREATE FUNCTION Ten_Ham ( [Danh_Sach_Cac_Tham_So] ) 

    RETURNS Kieu_Du_Lieu_Tra_Ve_Cua_Ham

    AS 

    BEGIN

       Cac_Cau_Lenh_Cua_Ham

    END

    – Ten_Ham: Tên của hàm cần tạo. Tên phải tuân theo qui tắc định danh và không trùng với tên của các hàm hệ thống có sắn.

    – Danh_Sach_Cac_Tham_So: Các tham số của hàm được khai báo ngay sau tên hàm và được bao bởi cặp dấu (), Danh sách các tham số này có thể không có – trường hợp này thì sau tên hàm bạn cần có cặp dấu (). Nếu hàm có nhiều tham số thì các khai báo phân cách nhau bởi dấu phẩy và phải bao hồm 2 phần: Tên tham số được bắt đầu bởi dấu @, Kiểu dữ liệu của tham số

    – Cac_Cau_Lenh_Cua_Ham: Tập hợp các câu lệnh sử dụng trong nội dung hàm để thực hiện các yêu cầu của hàm.

    Ví dụ 1: Mình sẽ lấy một ví dụ thật đơn giản là hàm không có Danh_Sach_Cac_Tham_So – trả về giá trị là năm hiện hành (Theo giờ hệ thống trên máy Database server):

    CREATE  FUNCTION dbo.fuGetCurrYear () 

    RETURNS int

    AS 

    BEGIN

     RETURN   YEAR(getdate())

    END

     

    Xem ví dụ trên bạn sẽ thấy nó rất đơn giản nhưng qua đây bạn cũng đã biết được việc viết hàm trong SQL như thế nào.

    Ví dụ 2: Tiếp theo mình sẽ viết một ví dụ nữa để bạn hiểu và có thể viết cho mình các hàm tự định nghĩa:

     CREATE  FUNCTION dbo.fuDaysInMonth (  @Thang Int,  @Nam  Int )  RETURNS int AS  BEGIN    DECLARE @Ngay Int  IF @Thang = 2   BEGIN     OR (@Nam % 400 = 0))     SET @Ngay = 29    ELSE     SET @Ngay = 28   END  ELSE   SELECT @Ngay =     CASE @Thang     WHEN 1 THEN 31     WHEN 3 THEN 31     WHEN 5 THEN 31     WHEN 7 THEN 31     WHEN 8 THEN 31     WHEN 10 THEN 31     WHEN 12 THEN 31     WHEN 4 THEN 30     WHEN 6 THEN 30     WHEN 9 THEN 30     WHEN 11 THEN 30    END  RETURN @Ngay END

     

    Ví dụ 3: Bạn xem tiếp ví dụ sau để xác định thứ trong tuần của một giá trị kiểu ngày

    CREATE FUNCTION fuThu

    (

     @ngay DATETIME

    )

    RETURNS NVARCHAR(10)

    AS

         BEGIN

              DECLARE @KetQua NVARCHAR(10)

              SELECT @KetQua=CASE DATEPART(DW,@ngay)

                            WHEN 1 THEN N’Chủ nhật’

                            WHEN 2 THEN N’Thứ hai’

                            WHEN 3 THEN N’Thứ ba’

                            WHEN 4 THEN N’Thứ tư’

                            WHEN 5 THEN N’Thứ năm’

                            WHEN 6 THEN N’Thứ sáu’

                            ELSE N’Thứ bảy’

                          END   

              RETURN (@KetQua)  /* Trị trả về của hàm */

    END

    SELECT e.FirstName, e.LastName,

    dbo.fuThu(e.BirthDate) AS ThuOfBirth 

    FROM Employees e

    Tiếp theo mình sẽ nói về Hàm với giá trị trả về là “dữ liệu kiểu bảng”

    Nếu đã biết về SQL chắc hẳn bạn đã biết cách tạo View từ các bảng trong CSDL, Nhưng với View bạn không thể truyền các tham số được, điều này phần nào đó làm giảm tính linh hoạt trong việc sử dụng View. Vậy nên khi bạn cần sử dụng dữ liệu dạng View mà có các tham số thì việc sử dụng hàm là một giải pháp hợp lý nhất.

    Ví dụ 4: Giả sử Mình tạo 1 View như sau: 

     CREATE VIEW vProducts  as  SELECT      Categories.CategoryID,  Categories.CategoryName,  Products.ProductName,  Products.QuantityPerUnit,  Products.UnitPrice FROM          Categories INNER JOIN  Products ON Categories.CategoryID = Products.CategoryID  WHERE Categories.CategoryID=1

    Ví dụ 5: Tạo một hàm trả về dữ liệu dạng bảng tùy theo giá trị của biến @CategoryID truyền vào:

    CREATE FUNCTION fuGetProducts

    (

     @CategoryID int

    )RETURNS TABLE

     AS

      RETURN

      (

       SELECT    

      Categories.CategoryID,

      Categories.CategoryName,

      Products.ProductName,

      Products.QuantityPerUnit,

      Products.UnitPrice

     FROM        

      Categories INNER JOIN

      Products ON Categories.CategoryID = Products.CategoryID

      WHERE [email protected])

    chạy thử hàm trên(Chú ý là khi hàm trả về dạng bảng bạn cũng coi đó như 1 table hoặc 1 View và bạn có thể truy vấn theo 1 hay nhiều trường của hàm) như sau:  

    SELECT CategoryID,

    CategoryName,

    ProductName,

    QuantityPerUnit,

    UnitPrice

    FROM  dbo.fuGetProducts(1)

     

    Sẽ tra về dữ liệu chính là Select * from vProducts ở trên. Nếu muốn lầy Theo CategoryID=2 bạn dùng câu lệnh Select * from dbo.fuGetProducts(2)…

    --- Bài cũ hơn ---

  • Các Dạng Bài Tập Foxpro – Sanghv
  • Bài Tập Cây Nhị Phân Tìm Kiếm
  • 6 Cách Sửa Lỗi The Archive Is Either In Unknown Format Or Damaged
  • Hướng Dẫn Sửa Lỗi Giải Nén Winrar
  • Cách Khắc Phục Lỗi The Archive Is Either In Unknown Format Or Damaged
  • Bài Tập Diode Có Lời Giải

    --- Bài mới hơn ---

  • Bài Tập Diode Có Lời Giải Bai Tap Diode 2 Doc
  • Giải Thuật Và Lập Trình: §6. Cây (Tree)
  • Hơn 100 Bài Tập Python Có Lời Giải (Code Mẫu)
  • Bài Tập Cấu Trúc Dữ Liệu Và Giải Thuật Tổng Hợp
  • Transistor Trường Fet, Nguyễn Hoàng Hiệp
  • TÓM TẮT LÝ THUYẾT VÀ BÀI TẬP PHẦN DIODE

    MÔN KỸ THUẬT ĐIỆN TỬ

    Quan hệ giữa dòng điện và điện áp

    với: IS: dòng điện (ngược) bão hòa

    VT: điện thế nhiệt

    η: hệ số thực tế, có giá trị từ 1 đến 2

    Hình 1-1 Đặc tuyến diode phân cực thuận

    Điện trở AC (điện trở động)

    Ngoài rD, còn tồn tại điện trở tiếp xúc (bulk) rB,thường có trị số rất nhỏ và được bỏ qua.

    Điện trở DC

    Phân tích mạch DC có diode

    Ta có thể thay thế diode trong mạch bởi một nguồn áp 0,7V (nếu là diode Si) hoặc 0,3V (nếu là diode Ge) bất cứ khi nào mà diode có dòng phân cực thuận phía trên điểm knee.

    Hình 1-2 Diode phân cực thuận (a) có thể thay thế bởi một nguồn áp (b)

    Vì vậy, để phân tích điện áp và dòng diện DC trong mạch có chứa diode, ta có thể thay thế đặc tuyến V-A như hình 1-3.

    Hình 1-3 Đặc tuyến lý tưởng hóa

    Ví dụ 1-1

    Giả sử rằng diode Si trên hình 1-4 đòi hỏi dòng tối thiểu là 1 mA để nằm trên điểm knee.

    Hình 1-4 (Ví dụ 1-1)

    1. Trị số R là bao nhiêu để dòng trong mạch là 5 mA?

    2. Với trị số R tính ở câu (1), giá trị tối thiểu của E là bao nhiêu để duy trì diode ở trên điểm knee?

    Giải

    1. Trị số của R

    2. Giá trị tối thiểu của E

    Phân tích mạch diode với tín hiệu nhỏ

    Một cách tổng quát, các linh kiện thể xem xét hoạt động ở hai dạng: tín hiệu nhỏ vá tín hiệu lớn. Trong các ứng dụng tín hiệu nhỏ, điện áp và dòng điện trên linh kiện một tầm rất giới hạn trên đặc tuyến V-A. Nói cách khác, đại lượng ΔV và ΔI rất nhỏ so với tầm điện áp và dòng điện mà linh kiện hoạt động.

    Ví dụ 1-2

    Giả sử rằng diode Si trên hình 1-5 được phân cực phía trên điểm knee và có rB là 0,1Ω, hãy xác định dòng điện và điện áp trên diode. Vẽ đồ thị dòng điện theo thời gian.

    Hình 1-5 (Ví dụ 1-2)

    Giải

    Ngắn mạch nguồn AC, xác định dòng DC:

    Do đó, điện trở AC là

    Dòng điện AC là

    Điện áp AC là

    Như vậy dòng và áp tổng cộng là

    Đồ thị dòng điện theo thời gian được cho ở hình 3-8

    Hình 1-6 Thành phần AC thay đổi ±7,37 mA xung quanh thành phần DC 19,63mA

    Đường tải (load line)

    Ta có thể thực hiện việc phân tích diode với tín hiệu nhỏ bằng cách sử dụng hình vẽ với đặc tuyến V-A của diode.

    Xét mạch cho ở hình 1-7. Đây chính là mạch tương đương về DC của mạch đã cho ở hình 1-5 (ngắn mạch nguồn áp). Ta xem điện áp trên diode là V (chứ không là hằng số).

    Hình 1-7 Dòng điện qua diode I và điệp áp trên diode V

    Theo định luật áp Kirchhoff, ta có

    Do đó, quan hệ giữa dòng và áp DC trên diode cho bởi phương trình

    Thay số vào, ta có

    Phương trình này có dạng y=ax+b và đồ thị của nó là một đường thẳng có độ dốc (slope) là -1/R và cắt trục I tại điểm E/R (và cắt trục V tại điểm Vo=E). Đường thẳng này được gọi là đường tải DC (DC Load Line).

    Đường tải DC của mạch cho ở hình 1-7 được vẽ trên hình 1-8. Đường tải này biểu diễn tất cả các tổ hợp có thể có của dòng điện qua diode I và điệp áp trên diode V với trị số E và R xác định. Giá trị hiện thời của I và V tùy thuộc vào diode được sử dụng trong mạch.

    Hình 1-8 Đường tải DC

    Đặc tính của đường tải DC là mọi tổ hợp có thể có của dòng điện I và điện áp V của mạch ở hình 1-7 là một điểm nằm tại một nơi nào đó trên đường thẳng. Cho trước một diode cụ thể (mà ta đã biết đặc tuyến V-A của nó), mục tiêu của ta là xác định tổ hợp dòng-áp hiện thời. Ta có thể tìm được điểm này bằng cách vẽ đường tải DC trên cùng hệ trục tọa độ của đặc tuyến Vôn-Ampe, giao điểm

    --- Bài cũ hơn ---

  • Bài Tập Hạch Toán Tiền Lương Có Lời Giải
  • Download Bai Tap Co Loi Giai Mon Ky Thuat So
  • Bài Tập Hiệu Điện Thế
  • Bài Tập Bjt Có Đáp Số
  • Bài Tập Tự Luận Arbitrage Quốc Tế Và Ngang Giá Lãi Suất (Có Đáp Án Tham Khảo)
  • Bài Tập C Có Lời Giải

    --- Bài mới hơn ---

  • Địa Chỉ Các Trang Web Hướng Dẫn Giải Bài Tập Cho Học Sinh Hay Nhất
  • Giải Sbt Toán 12 Bài 2: Mặt Cầu
  • Giải Sbt Toán 11 Bài 2: Dãy Số
  • Giải Sbt Toán 11 Bài 4: Cấp Số Nhân
  • Giải Sbt Toán 11 Bài 1: Quy Tắc Đếm
  • Các cấp độ bài tập C

    Bài này cung cấp cho bạn danh sách các bài tập C có lời giải ở các cấp độ khác nhau để bạn thực hành khi học ngôn ngữ lập trình C:

    1. Bài tập C kinh điển.
    2. Bài tập C cơ bản.
    3. Bài tập vòng lặp trong C.
    4. Bài tập C về mảng một chiều và mảng 2 chiều (ma trận).
    5. Bài tập C về chuỗi trong C.
    6. Bài tập C về đệ quy.
    7. Bài tập C về con trỏ.
    8. Bài tập C về các thuật toán sắp xếp.
    9. Bài tập C về Struct (Cấu trúc).
    10. Bài tập C về danh sách liên kết (Linked List).
    11. Bài tập C về đọc ghi file.

    1. Bài tập C kinh điển

    Bài 01: Viết một chương trình C in ra dãy số Fibonacci

    Code mẫu: In dãy số Fibonacci trong C không sử dụng đệ quy.

    /** * Tinh day so Fibonacci KHONG dung phuong phap de quy * * @author viettuts.vn */ /** * Tinh so Fibonacci thu n * * @param n: chi so cua so Fibonacci tinh tu 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return So Fibonacci thu n */ int fibonacci(int n) { int f0 = 0; int f1 = 1; int fn = 1; int i; if (n < 0) { return -1; return n; } else { for (i = 2; i < n; i++) { f0 = f1; f1 = fn; fn = f0 + f1; } } return fn; } /** * Ham main */ int main() { int i; printf("10 so dau tien cua day so Fibonacci: n"); for (i = 0; i < 10; i++) { printf("%d ", fibonacci(i)); } }

    Kết quả:

    10 so dau tien cua day so Fibonacci: 0 1 1 2 3 5 8 13 21 34

    Bài 02: Viết một chương tình C kiểm tra số nguyên tố.

    /** * check so nguyen to trong C * * @author viettuts.vn * @param n: so nguyen duong * @return 1 la so nguyen so, * 0 khong la so nguyen to */ int isPrimeNumber(int n) { // so nguyen n < 2 khong phai la so nguyen to if (n < 2) { return 0; } int squareRoot = (int) sqrt(n); int i; for (i = 2; i <= squareRoot; i++) { if (n % i == 0) { return 0; } } return 1; } /** * Ham main */ int main() { int i; printf("Cac so nguyen to nho hon 100 la: n"); for (i = 0; i < 100; i++) { if (isPrimeNumber(i)) { printf("%d ", i); } } }

    Kết quả:

    Cac so nguyen to nho hon 100 la: 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 03: Viết một chương trình C tính giai thừa của một số bằng cách không sử dụng đệ quy và có sử dụng đệ quy.

    Code mẫu: Tính giai thừa trong C không sử dụng đệ quy.

    /** * Tinh giai thua KHONG dung phuong phap de quy * * @author viettuts.vn */ /** * tinh giai thua * * @author viettuts.vn * @param n: so nguyen duong * @return giai thua cua so n */ long tinhGiaithua(int n) { int i; long giai_thua = 1; return giai_thua; } else { for (i = 2; i <= n; i++) { giai_thua *= i; } return giai_thua; } } /** * Ham main */ int main() { int a = 5; int b = 0; int c = 10; printf("Giai thua cua %d la: %d n", a, tinhGiaithua(a)); printf("Giai thua cua %d la: %d n", b, tinhGiaithua(b)); printf("Giai thua cua %d la: %d", c, tinhGiaithua(c)); }

    Kết quả:

    Giai thua cua 5 la: 120 Giai thua cua 0 la: 1 Giai thua cua 10 la: 3628800

    Bài 04: Viết một chương trình C để chuyển đổi số nguyên N sang hệ cơ số B (2 <= B <= 32) bất kỳ.

    Code mẫu: Chuyển đối hệ cơ số 10 sang hệ cơ số B

    /** * Chuong trinh chuyen doi he co so trong C * Bai tap nay su dung bang ASCII de chuyen doi so nguyen thanh kieu ky tu * Link tham khao: https://vi.wikipedia.org/wiki/ASCII * * @author viettuts.vn */ const char CHAR_55 = 55; const char CHAR_48 = 48; /** * chuyen doi so nguyen n sang he co so b * * @author viettuts.vn * @param n: so nguyen * @param b: he co so */ int convertNumber(int n, int b) { printf("He co so hoac gia tri chuyen doi khong hop le!"); return 0; } int i; char arr = (char) (m + CHAR_55); count++; } else { arr = (char) ((remainder % b) + CHAR_48); count++; } remainder = remainder / b; } // hien thi he co so printf("%c", arr; // phan tich if (n % i == 0) { n = n / i; a = n; } // in ket qua ra man hinh for (i = 0; i < dem - 1; i++) { printf("%d x ", a); } /** * Ham main */ int main() { int n; printf("Nhap so nguyen duong n = "); scanf("%d", &n); // phan tich so nguyen duong n phanTichSoNguyen(n); }

    Kết quả:

    Nhap so nguyen duong n = 120 2 x 2 x 2 x 3 x 5

    Bài 07: Viết chương trình C tính tổng các chữ số của một số nguyên n. Ví dụ: 1234 = 1 + 2 + 3 + 4 = 10.

    const int DEC_10 = 10; /** * Ham main */ int main() { int n; printf("Nhap so nguyen duong n = "); scanf("%d", &n); printf("Tong cac chu so cua %d la: %d", n, totalDigitsOfNumber(n)); } /** * Tinh tong cac chu so cua mot so nguyen duong */ int totalDigitsOfNumber(int n) { int total = 0; do { total = total + n % DEC_10; n = n / DEC_10; return total; }

    Kết quả:

    Nhap so nguyen duong n = 1234 Tong cac chu so cua 1234 la: 10

    Bài 08: Viết chương trình C tìm các số thuận nghịch có 6 chữ số. Một số được gọi là số thuận nghịch nếu ta đọc từ trái sang phải hay từ phải sang trái số đó ta vẫn nhận được một số giống nhau. Ví dụ 123321 là một số thuận nghịch.

    /** * Chuong trình li?t kê t?t c? các s? thu?n ngh?ch có 6 ch?a s?. * * @author viettuts.vn */ const int DEC_10 = 10; /** * main * * @param args */ int main() { int count = 0, i; // in ra man hinh cac so thuan nghich co 6 chu so for (i = 100000; i < 1000000; i++) { if (isThuanNghich(i)) { printf("%dn", i); count++; } } printf("Tong cac so thuan nghich co 6 chu so la: %d", count); } /** * kiem tra so thuan nghich * * @param n: so nguyen duong * @return 1: la so thuan nghich * 0: khong la so thuan nghich */ int isThuanNghich(int n) { int a = (n % DEC_10); n = n / DEC_10; // kiem tra tinh thuan nghich for (i = 0; i < (dem/2); i++) { if (a) { return 0; } } return 1; }

    Kết quả:

    100001 101101 102201 ... 997799 998899 999999 Tong cac so thuan nghich co 6 chu so la: 900

    Bài 09: Nhập số tự nhiên n. Hãy liệt kê các số Fibonacci nhỏ hơn n là số nguyên tố.

    /** * Chuong trinh liet ke cac so Fibonacci nho hon n la so nguyen to. * * @author viettuts.vn */ /** * Ham main */ int main() { int n; printf("Nhap so nguyen duong = "); scanf("%d", &n); printf("Cac so fibonacci nho hon %d va la so nguyen to: ", n); int i = 0; while (fibonacci(i) < n) { int fi = fibonacci(i); if (isPrimeNumber(fi)) { printf("%d ", fi); } i++; } } /** * Tinh so fibonacci thu n * * @param n: chi so cua day fibonacci tinh tu 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return so fibonacci thu n */ 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 1: la so nguyen so, * 0: khong la so nguyen to */ int isPrimeNumber(int n) { // so nguyen n < 2 khong phai la so nguyen to if (n < 2) { return 0; } int i; int squareRoot = sqrt(n); for (i = 2; i <= squareRoot; i++) { if (n % i == 0) { return 0; } } return 1; }

    Kết quả:

    Nhap so nguyen duong = 100 Cac so fibonacci nho hon 100 va la so nguyen to: 2 3 5 13 89

    3. Bài tập vòng lặp trong C

    Bài này tổng hợp các bài tập vòng lặp trong C giúp bạn làm quen cú pháp và cách sử dụng của các vòng lặp C cơ bản: vòng lặp for , vòng lặp while, vòng lặp do-while và vòng lặp lồng nhau.

    4. Bài tập mảng trong C

    Mảng là một tập hợp dữ liệu có cùng kiểu. Mảng trong C là một cấu trúc dữ liệu cơ bản và quan trọng.

    5. Bài tập mảng 2 chiều trong C

    5. Bài tập chuỗi trong C

    Chuỗi (String) trong C là một mảng ký tự được kết thúc bởi (ký tự null).

    6. Bài tập Đệ quy trong C

    7. Bài tập về con trỏ (Pointer) trong C

    Trước khi bắt đầu, bạn có thể xem lại một số khái niệm cơ bản về Con trỏ (Pointer) trong bài Con trỏ trong C

    Con trỏ (Pointer) trong C là một biến, nó còn được gọi là locator hoặc indicator chỉ ra một địa chỉ của một giá trị.

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

    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

    9. Bài tập về Struct trong C

    Bạn có thể xem lại một số khái niệm cơ bản về Struct tại: Struct trong C

    10. Bài tập về danh sách liên kết (linked-list) trong C

    Đang cập nhật…

    11. Bài tập về File I/O trong C

    Bạn có thể xem lại một số chế độ được sử dụng khi mở một file trong C:

    EOF trong C là gì?

    Ký tự EOF, là viết tắt của End of File, xác định vị trí cuối cùng của file. Kiểm tra nếu gặp ký tự này thì tiến trình ghi dữ liệu vào file của chúng ta sẽ kết thúc.

    12. Bài tập quản lý sinh viên trong C/C++

    --- Bài cũ hơn ---

  • Học Jquery Cơ Bản Và Nâng Cao
  • Bài Tập C/c++ Có Lời Giải Pdf
  • Tổng Hợp Bài Tập Javascript Có Code Mẫu
  • Tổng Hợp Các Bài Tập Javascript Cơ Bản Có Lời Giải 2022
  • Tổng Hợp Bài Tập Java Có Đáp Án Chi Tiết
  • Bài Tập Java Có Lời Giải

    --- Bài mới hơn ---

  • Lập Trình Mạng Với Java (Bài 6)
  • Ebook Bài Tập Java Lập Trình Hướng Đối Tượng Có Lời Giải Pdf
  • Lập Trình Java Căn Bản
  • Giải Vở Bài Tập Toán 4 Bài 37: Tìm Hai Số Khi Biết Tổng Và Hiệu Của Hai Số Đó
  • Bài 1,2,3,4 Trang 46 Sgk Đại Số Và Giải Tích 11: Quy Tắc Đếm
  • 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) { 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 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) { // kiểm tra các hệ số 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; } // tính delta float delta = b*b - 4*a*c; float x1; float x2; // tính nghiệm 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(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 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) { // so nguyen n < 2 khong phai la so nguyen to 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) { 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) { // so nguyen n < 2 khong phai la so nguyen to 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("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ố 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) { // so nguyen n < 2 khong phai la so nguyen to 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:

    1. 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.

    2. 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ố.

    3. 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:

    1. 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.

    2. 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.

    3. 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:

    1. 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.
    2. 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

    3. 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.

    4. 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 cũ hơn ---

  • Bài Tập Java Cơ Bản, Có Lời Giải Code Mẫu
  • Đề Tài Bài Tập Về Nguyên Lý Thứ Hai Của Nhiệt Động Hoá Học
  • Bài Tập Hóa Lý Có Lời Giải Và Ngân Hàng Câu Hỏi Trắc Nghiệm 178 Trang
  • Giải Bài Tập Công Nghệ 8
  • Giải Bài Tập 6 Hóa 11 Trang 147
  • Web hay
  • Links hay
  • Push
  • Chủ đề top 10
  • Chủ đề top 20
  • Chủ đề top 30
  • Chủ đề top 40
  • Chủ đề top 50
  • Chủ đề top 60
  • Chủ đề top 70
  • Chủ đề top 80
  • Chủ đề top 90
  • Chủ đề top 100
  • Bài viết top 10
  • Bài viết top 20
  • Bài viết top 30
  • Bài viết top 40
  • Bài viết top 50
  • Bài viết top 60
  • Bài viết top 70
  • Bài viết top 80
  • Bài viết top 90
  • Bài viết top 100