Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 150 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
150
Dung lượng
2,7 MB
Nội dung
Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐẶNG NHẤT NGUYÊN ĐỀ TÀI TÍNH TOÁN HỆ CHỊU LỰC NHÀ NHIỀU TẦNG CÓ XÉT ẢNH HƯỞNG CỦA ĐỘNG ĐẤT THEO TIÊU CHUẨN CÁC NƯỚC Chuyên ngành: Xây Dựng Dân Dụng & Công Nghiệp Mã số ngành: 23.04.10 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 10 năm 2004 CÔNG TRÌNH ĐƯC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán hướng dẫn khoa học: Cán chấm nhận xét 1: Cán chấm nhận xét 2: Luaän văn bảo vệ tại: Hội Đồng Chấm Bảo Vệ Luận Văn Thạc Só Trường Đại Học Bách Khoa, ngày 31 tháng 12 năm 2004 Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA - COÄNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập – Tự Do – Hạnh Phúc - NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Đặng Nhất Nguyên Ngày, tháng, năm sinh: 24 / 07 / 1979 Chuyên ngành: Xây dựng dân dụng &ø công nghiệp Phái: Nam Nơi sinh: Tp Hồ Chí Minh Mã số: XDDD 13-014 I- TÊN ĐỀ TÀI: “Tính Toán Hệ Chịu Lực Nhà Nhiều Tầng Có Xét nh Hưởng Của Động Đất Theo Tiêu Chuẩn Các Nước” Phạm vi nghiên cứu luận văn: “Phân Tích Qui Trình Tính Lực Động Đất Tác Dụng Lên Nhà Nhiều Tầng” II- NHIỆM VỤ VÀ NỘI DUNG: Trình bày qui trình tính lực động đất theo số qui phạm Dựa vào trình phân tích phản ứng động kết cấu, dẫn hệ số, công thức qui phạm Mỹ (UBC) Đánh giá mức độ xác phương pháp tính lực động đất Kiến nghị qui trình tính lực động đất điều kiện Việt Nam đề xuất số giải pháp kết cấu thiết kế công trình chịu động đất III- NGÀY GIAO NHIỆM VỤ: Tháng 12 năm 2003 IV- NGÀY HOÀN THÀNH NHIỆM VỤ: Ngày 01 tháng 11 năm 2004 V- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS-TS Nguyễn Văn Hiệp CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM NGÀNH BỘ MÔN QUẢN LÝ NGÀNH Nội dung luận văn thạc só Hội Đồng Chuyên Ngành thông qua PHÒNG ĐÀO TẠO SĐH Ngày 01 tháng11 năm 2004 KHOA QUẢN LÝ NGÀNH Lời cảm ơn Em xin chân thành cảm ơn thầy hướng dẫn PGS-TS Nguyễn Văn Hiệp, người tận tình hướng dẫn, thiếu sót, yếu cho em lời khuyên q báu suốt trình thực luận văn Em xin cảm ơn thầy, cô tận tình giảng dạy truyền đạt kiến thức suốt thời gian em tham dự khóa cao học Em xin gởi lời cảm ơn đến anh chị đồng nghiệp, thầy cô Khoa Kỹ Thuật Công Trình trường Đại Học Dân Lập Kỷ Nghệ tạo điều thận lợi giúp em tham dự khóa học hoàn thành luận văn Con xin cảm ơn ba mẹ động viên, giúp vượt qua khó khăn mà tưởng chừng Cuối cùng, xin cảm ơn bạn, anh chị khóa giúp đỡ cho Nguyên lời khuyên có ích suốt khóa học -// - MỤC LỤC Chương : TỔNG QUAN 1.1 Mở Ñaàu .1 1.2 Mục Tiêu Phạm Vi Đề Tài 1.3 Cơ Sở Lý Thuyết 1.4 Caùc Khái Niệm 1.4.1 Sự hình thành động đất 1.4.2 Chấn tâm (tâm chấn), chấn tiêu 1.4.3 Sóng địa chấn .3 1.4.4 Thang đo cường độ động đất 1.4.5 Nguyên nhân phá hoại công trình động đất xảy .6 Chương : TÍNH LỰC ĐỘNG ĐẤT THEO CÁC QUI PHẠM 2.1 Tính Lực Động Đất Tác Động Lên Nhà Nhiều Tầng Theo Tiêu Chuẩn Xây Dựng Việt Nam (TCXD198:1997) .7 2.2 Tính Lực Động Đất Theo Qui Phạm Mỹ (UBC) .8 2.2.1 Các thông số ban đầu 2.2.2 Phương pháp đơn giản xác định lực ngang động đất gây 13 2.2.3 Phương pháp lực ngang qui đổi 14 2.2.4 Phương pháp phân tích phổ phản ứng 16 2.2.5 Vấn đề ảnh hưởng tiếp xúc móng đến lực động đất tác dụng lên công trình 19 2.3 Tính Lực Động Đất Theo Qui Phạm Iran 27 2.4 Tính Lực Động Đất Theo Qui Phạm Châu Âu 8-1994 32 2.5 Tính Lực Động Đất Theo Qui Phạm Nhật .36 2.6 Nhận Xét Về Các Qui Trình Tính Lực Động Đất 39 2.7 Kết Luận 41 Chương : PHÂN TÍCH CÁC HỆ SỐ TRONG QUI PHẠM UBC 42 3.1 Công Trình Một Bậc Tự Do .42 3.2 Công Trình Có Nhiều Bậc Tự Do 49 3.3 Kết Luận 57 Chương : VIẾT CHƯƠNG TRÌNH TỰ ĐỘNG TÍNH LỰC ĐỘNG ĐẤT THEO QUI PHẠM UBC 58 Chương : VÍ DỤ TÍNH TOAÙN 60 5.1 Bài Toán 60 5.1.1 Tính tải trọng gió động .62 5.1.2 Tính Lực Động Đất Theo Qui Phạm UBC (Mỹ) 66 5.1.3 Tính Lực Động Đất Theo Qui Phạm Châu Âu 74 5.1.4 Tính Lực Động Đất Theo Qui Phạm Nhật 75 5.1.5 Tính Lực Động Đất Theo Qui Phạm Iran 76 5.2 Bài Toán 78 5.2.1 Phương pháp lực ngang qui đổi (UBC) 78 5.2.1 Phương pháp phân tích phổ phản ứng (UBC) 82 5.3 Bài Toaùn 85 5.4 So sánh kết tính toán 87 5.5 Nhận xét 89 Chương : KẾT LUẬN VÀ KIẾN NGHỊ 91 Tài Liệu Tham Khảo 93 Tóm Tắt Lý Lịch Trích Ngang Phụ Lục : BẢN ĐỒ PHÂN VÙNG ĐỘNG ĐẤT VIỆT NAM P1 Phụ Lục : BẢN ĐỒ PHÂN VÙNG GIA TỐC NỀN SS VÀ S1 P2 Phụ Lục : BẢN ĐỒ CHU KỲ CHUYỂN TL .P3 Phuï Luïc : CÁC BẢNG TRA .P4 Phụ Lục : CÁCH TÍNH ĐỘ CỨNG CỦA MÓNG CỌC RIÊNG BIỆT P8 Phụ Lục : HƯỚNG DẪN SỬ DỤNG PHẦN MỀM P10 Phuï Luïc : QUAN HỆ GIỮA CÁC THANG ĐO CƯỜNG ĐỘ ĐỘNG ĐẤT P13 Phụ Lục : CHƯƠNG TRÌNH EFCP .P14 Chương TỔNG QUAN 1.1 MỞ ĐẦU Nước ta không chịu thiệt hại đáng kể động đất gây Các trận động đất thường xảy tỉnh phía Bắc duyên hải miền Trung, có cường độ trung bình chu kỳ lặp lại tương đối thưa Ngoại trừ vùng sông Đà có chu kỳ lập lại 53 năm với cường độ khoảng 5.5 độ Richter, nơi khác có chu kỳ lập lại 180 năm20 Do đó, tính toán công trình, kỹ sư thiết kế không kể đến tải trọng động đất gây Cùng với phát triển mặt xã hội, công trình xây dựng, tòa nhà cao tầng ngày xuất nhiều khắp nơi Nhu cầu chỗ ở, nơi làm việc tuyệt đối an toàn kể xảy động đất ngày trở nên phổ biến Điều đặt vấn đề cho kỹ sư thiết kế mà trước thường không đề cập tính toán công trình, “Thiết kế công trình chịu ảnh hưởng động đất” Hiện nay, Bộ Xây Dựng có dẫn cách tính lực động đất cho nhà cao tầng4 khó áp dụng thiết kế hệ số dẫn thay đổi phạm vi lớn mà lại không đề cập tới cách thức xác định xác hệ số Ngoài ra, Bộ Xây Dựng cho phép sử dụng qui trình tính toán lực động đất theo nước tiên tiến thiết kế công trình Việt Nam2 Trong năm gần đây, với phát triển ngành khoa học nói chung, khoa học Trái Đất có bước tiến đáng kể Nếu năm 1997, lần đồ gia tốc dao động lãnh thổ Việt Nam thiết lập21 số hạn chế đến đầu năm 2004, đồ gia tốc dao động cực đại khu vực Việt Nam lân cận (chu kỳ 475 năm 975 năm) lập xong khắc phục hạn chế trước đây24 Những kết nghiên cứu động đất năm gần giúp ước lượng cách định lượng nhanh gia tốc dao động toàn lãnh thổ nước ta có ích cho việc xác định lực động đất thiết kế công trình Một số cách tính lực động đất giới thiệu nước ta trước 9,17,27 hoàn toàn vận dụng để tính lực động đất thiết kế công trình lý do: 1) Cách tra sử dụng hệ số nêu lên công thức không dẫn chi tiết; 2) Ýù nghóa vật lý hệ số không trình bày rõ ràng; 3) Hệ số gia tốc đỉnh hữu hiệu (effective peak acceleration coefficient) hệ số gia tốc tương quan vận tốc đỉnh hữu hiệu (effective peak velocity-related acceleration coefficient)7 không dùng làm giá trị ban đầu tính lực động đất kể từ năm 1997, tài liệu giới thiệu cách tính lực động đất nêu viết xuất trước năm 1997 nên không cập nhật thay đổi sau Một số luận văn cao học trường Đại Học Bách Khoa Tp Hồ Chí Minh trước có đề cập đến việc tính toán động đất Trong luận văn thạc só Võ Bá Tầm25, tác giả kiến nghị qui trình tính lực động đất điều kiện Việt Nam dựa vào qui phạm nước Liên Xô, Trung Quốc, Mỹ, Pháp, Nhật… cấp độ đơn giản (tương tự Chương II, phần 2.3; 2.4; 2.5) nên áp dụng vào tính toán thực tiễn Trong luận văn thạc só Ngô Vi Long14, tác giả sâu vào việc phân tích phản ứng động kết cấu có xét thiết bị giảm chấn động học (Tuned Mass Damper - TMD), phân tích trình tối ưu hóa thiết bị TMD áp dụng vào việc thiết kế chống động đất Xuyên suốt luận văn14 trình nghiên cứu công phu tính thực dụng không cao, khó dùng để tính lực động đất lên nhà cao tầng, điều kiện Việt Nam Còn luận văn thạc só Nguyễn Công Dân15, việc nêu lên lý thuyết tính lực động đất (tương tự luận văn thạc só Võ Bá Tầm), tác giả trình bày công thức tính toán, bố trí cốt thép kết cấu chịu lực động đất Luận văn gần thạc só Nguyễn Thị Dung16, tác giả đề giải pháp làm tăng khả chịu lực công trình, xem tường gạch xây chen tham gia chịu lực Bằng ví dụ cụ thể, tác giả Nguyễn Thị Dung cho thấy việc xét hệ tường xây chen tham gia chịu lực bỏ qua Như vậy, luận văn cao học trước không đề qui trình tính lực động đất mà áp dụng tính toán thiết kế công trình điều kiện Việt Nam 1.2 MỤC TIÊU VÀ PHẠM VI CỦA ĐỀ TÀI Mục tiêu luận văn nêu lên qui trình tính toán lực động đất tác dụng lên công trình xây dựng điều kiện Việt Nam nhằm giúp kỹ sư xây dựng vận dụng thiết kế công trình chịu lực động đất, đồng thời kiến nghị việc lập đồ cần thiết cho việc xác định thông số ban đầu thiết kế Luận văn không nêu qui trình tính lực động đất tác dụng lên công trình mà chủ yếu tác dụng lên công trình có sơ đồ kết cấu phổ biến thông dụng sơ đồ khung, khung vách, vách Các vật liệu dùng kết cấu chịu lực bê tông, bê tông cốt thép, thép, thép liên hợp (composit), gạch đá Những công trình ngầm không xét phạm vi đề tài 1.3 CƠ SỞ LÝ THUYẾT Việc trình bày qui trình tính toán lực động đất tác dụng lên công trình dựa vào trình phân tích động lực học kết cấu công trình Luận văn không trình bày trình phân tích động kết cấu đề qui trình tính lực động đất Thay vào đó, luận văn trước tiên nêu lên qui trình tính lực động đất tác dụng lên công trình Sau tìm nguồn gốc hệ số qui trình tính thông qua trình phân tích động Qui trình tính lực động đất tham khảo dựa vào qui trình tính nước phát triển hay nước có tần xuất cường độ xảy động đất cao Lực động đất tác dụng lên công trình xem lực quán tính tác dụng cao trình tầng công trình dao động 1.4 CÁC KHÁI NIỆM 1.4.1 Sự hình thành động đất Động đất liên quan đến tỏa khối lượng lớn từ nơi định, nơi nằm sâu lòng đất Có nhiều nguyên nhân dẫn đến phát sinh khối lượng lượng gây động đất, nguyên nhân chuyển động tương hổ không ngừng khối vật chất nằm sâu lòng đất để thiết lập cân mới, gọi vận động kiến tạo, động đất hậu vận động kiến tạo 1.4.2 Chấn tâm (tâm chấn), chấn tiêu Điểm phát lượng trận động đất gọi chấn tiêu, điểm chiếu chấn tiêu theo chiều đường thẳng lên mặt đất gọi chấn tâm D Chấn tâm Nơi khảo sát H Chấn tiêu Hình 1.1: Chấn tâm chấn tiêu 1.4.3 Sóng địa chấn Khi động đất xảy ra, lượng giải phóng từ chấn tiêu truyền môi trường xung quanh dạng sóng đàn hồi vật lý: sóng dọc, sóng ngang sóng mặt Tất sóng vừa nêu động đất gây gọi sóng địa chấn Sóng dọc (hay sóng sơ cấp P) truyền di nhờ thay đổi thể tích môi trường, gây biến dạng kéo nén lòng đất Sóng dọc truyền theo phương từ chấn tiêu đến trạm quan sát, với vận tốc lớn (Vp = 7-8 km/s), nên chúng máy đo địa chấn ghi nhận sớm Sóng ngang (sóng thứ cấp S), truyền theo phương vuông góc với sóng dọc, có vận tốc nhỏ sóng dọc (Vs = 4-5 km/s) Sóng ngang không gây thay đổi thể tích mà gây tượng xoắn cắt môi trường (nên gọi sóng cắt) Các sóng dọc sóng ngang tới mặt đất chuyển thành sóng mặt gây chuyển động độ sâu nhỏ Sóng mặt (gần giống sóng biển) gây kéo, nén, cắt mặt đất Vận tốc truyền sóng mặt phụ thuộc vào tính chất lý tầng đất phủ Nền đất cứng (vững chắc) vần tốc truyền sóng tăng (2.5 – 15 km/s) Nền đất yếu, vận tốc truyền sóng mặt giảm (0.5 – 1.5 km/s) Sóng mặt xuất môi trường đồng gọi sóng Reyleigh Trên sở lý thuyết học môi trường liên tục, đàn hồi lý tưởng, đồng chất đẳng hướng, vận tốc truyền sóng dọc Vp sóng ngang Vs tính theo công thức : ⎛ ⎞ E (1 − υ ) ⎟⎟ V p = ⎜⎜ ⎝ ρ (1 + υ )(1 − 2υ ) ⎠ ⎛G⎞ Vs = ⎜⎜ ⎟⎟ ⎝ρ⎠ 1/ 1/ ⎛ ⎞ E ⎟⎟ = ⎜⎜ ⎝ ρ (1 + υ ) ⎠ (1.1) 1/ (1.2) Trong đó: E = G = Modun đàn hồi đất Modun chống cắt đất ρ = Mật độ môi trường truyền sóng ν = Hệ số Poisson môi trường truyền sóng Qua tập hợp so sánh số liệu ghi lại trạm đo khác nhau, thiết lập mối quan hệ khoảng cách với thời gian truyền sóng vẽ thành đồ thị Bởi đường cong đồ thị có giá trị chung cho tất trận động đất, độc lập với vị trí chấn tâm, nên kết luận điều kiện đàn hồi lòng đất phân chia xung quanh tâm đất theo qui luật gần đối xứng Dựa vào khác vận tốc truyền sóng dọc sóng ngang ghi nhận trạm quan trắc kết luận trên, ta xác định Begin StrGrd1.Cells[8,Tong]:='KCP'; HclArr[Tong-1].MaxHigh[5]:=HighExcp[1]; End; If CheckBox11.Checked then Begin StrGrd1.Cells[9,Tong]:='KGH'; HclArr[Tong-1].MaxHigh[6]:=HighExcp[2]; End; If CheckBox12.Checked then Begin StrGrd1.Cells[9,Tong]:='KCP'; HclArr[Tong-1].MaxHigh[6]:=HighExcp[1]; End; Label10.Caption:='Tong so hang muïc : '+IntTOStr(Tong); If Tong>0 then StrGrd1.FixedRows:=1; end; procedure TForm2.StrGrd1Click(Sender: TObject); begin If StrGrd1.Row>0 then BitBtn4.Enabled:=True Else BitBtn4.Enabled:=False; end; procedure TForm2.BitBtn4Click(Sender: TObject); Var i,n:Integer; begin if Tong=0 then Exit; n:=StrGrd1.Row; For i:=n to Tong-1 Begin StrGrd1.Rows[i]:=StrGrd1.Rows[i+1]; StrGrd1.Cells[0,i]:=IntToStr(i); HclArr[i-1]:=HclArr[i]; End; Tong:=Tong-1; SetLength(HclArr,Tong); StrGrd1.RowCount:=Tong+1; Label10.Caption:='Tong so hang muïc : '+IntTOStr(Tong); If Tong=0 then BitBtn4.Enabled:=False; end; procedure TForm2.BitBtn2Click(Sender: TObject); Var i:Integer; begin If Tong>0 then begin AssignFile(HclFile,HclDataFileName); ReWrite(HclFile); P23 For i:=1 to Tong Write(HclFile,HclArr[i-1]); CloseFile(HclFile); Close; end; end; procedure TForm2.FormClick(Sender: TObject); begin BitBtn4.Enabled:=False; end; end { } unit ddinput; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, Buttons; type TForm5 = class(TForm) StrGrd1: TStringGrid; Label1: TLabel; BitBtn1: TBitBtn; Label2: TLabel; StrGrd2: TStringGrid; Label3: TLabel; BitBtn2: TBitBtn; SaveDlg1: TSaveDialog; procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form5: TForm5; implementation P24 {$R *.dfm} uses main, bangtinh; procedure TForm5.FormCreate(Sender: TObject); Var i,j:Integer; begin Form1.Enabled:=False; StrGrd1.ColCount:=SoDd+1; StrGrd1.RowCount:=SoTang+1; StrGrd1.Cells[0,0]:='Taàng'; For i:=1 to StrGrd1.ColCount-1 StrGrd1.Cells[i,0]:='Daïng '+IntToStr(i); For i:=1 to StrGrd1.RowCount-1 StrGrd1.Cells[0,i]:=' '+IntToStr(i); StrGrd2.ColCount:=SoDd; For i:=0 to StrGrd2.ColCount-1 StrGrd2.Cells[i,0]:='Daïng '+IntToStr(i+1); If not ValueInit then exit; For i:=1 to SoDd Begin For j:=1 to SoTang StrGrd1.Cells[i,j]:=FloatToStr(DdArr[j-1,i-1]); StrGrd2.Cells[i-1,1]:=FloatToStr(Chuky[i-1]); End; end; procedure TForm5.BitBtn1Click(Sender: TObject); Var i,j,Tmp,Err:Integer; Tmpr:Real; begin Tmp:=0; For i:=1 to SoDd For j:=1 to SoTang Val(StrGrd1.Cells[i,j],Tmpr,Err); If Err0 then Tmp:=Tmp+abs(Err); For i:=1 to SoDd Val(StrGrd2.Cells[i-1,1],Tmpr,Err); If Err0 then Tmp:=Tmp+abs(Err); If Tmp>0 then Begin ShowMessage('Du lieu sai quy cach!'); Exit; End; SetLength(DdArr,SoTang,SoDd); SetLength(Chuky,SoDd); For i:=1 to SoDd Begin For j:=1 to SoTang P25 DdArr[j-1,i-1]:=StrToFloat(StrGrd1.Cells[i,j]); Chuky[i-1]:=StrToFloat(StrGrd2.Cells[i-1,1]); End; CheckDynamic:=True; Close; end; procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction); begin Form1.Enabled:=True; end; procedure TForm5.BitBtn2Click(Sender: TObject); Var i,j,Tmp,Err:Integer; Tmpr:Real; Ft:TextFile; begin Tmp:=0; For i:=1 to SoDd For j:=1 to SoTang Val(StrGrd1.Cells[i,j],Tmpr,Err); If Err0 then Tmp:=Tmp+abs(Err); For i:=1 to SoDd Val(StrGrd2.Cells[i-1,1],Tmpr,Err); If Err0 then Tmp:=Tmp+abs(Err); If Tmp>0 then Begin ShowMessage('Du lieu sai quy cach!'); Exit; End; If Not SaveDlg1.Execute then Exit; Assignfile(Ft,SaveDlg1.FileName); ReWrite(Ft); Writeln(Ft,SoTang,' ',SoDd); For j:=1 to SoDd Write(Ft,StrGrd2.Cells[j-1,1],' '); Writeln(Ft); For i:=1 to SoTang begin For j:=1 to SoDd Write(Ft,StrGrd1.Cells[j,i],' '); Writeln(Ft); End; CloseFile(Ft); end; end { -} P26 unit chonlua; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ddinput; type TForm6 = class(TForm) RdGrp1: TRadioGroup; GrBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; OpenDlg1: TOpenDialog; GrBox2: TGroupBox; BitBtn3: TBitBtn; Edit2: TEdit; procedure RdGrp1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form6: TForm6; implementation uses main, bangtinh; {$R *.dfm} procedure TForm6.RdGrp1Click(Sender: TObject); begin Case RdGrp1.ItemIndex of 0:Begin GrBox1.Enabled:=True; GrBox2.Enabled:=False; End; 1:Begin GrBox2.Enabled:=True; P27 GrBox1.Enabled:=False; End; End; end; procedure TForm6.BitBtn2Click(Sender: TObject); Var Tmp,Err:Integer; begin Val(Edit1.Text,Tmp,Err); If Err=0 then Sodd:=StrToInt(Edit1.Text) Else Begin ShowMessage('Loi quy cach so!'); Exit; End; ValueInit:=False; Tform5.Create(Self); Close; end; procedure TForm6.BitBtn1Click(Sender: TObject); begin If not OpenDlg1.Execute then exit; Edit2.Text:=OpenDlg1.FileName; end; procedure TForm6.BitBtn3Click(Sender: TObject); Var Ft:TextFile; n1,n2,Err,i,j:Integer; begin AssignFile(Ft,Edit2.Text); {$I-} Reset(Ft); {$I+} Err:=IoResult; If Err0 then begin ShowMessage('File bi loi'); Exit; End; Readln(Ft,n1,n2); If n1SoTang then begin ShowMessage('So tang nha khong khop du lieu'); CloseFile(Ft); Exit; End; P28 Sodd:=n2; SetLength(DdArr,SoTang,SoDd); SetLength(Chuky,SoDd); For j:=1 to SoDd Read(Ft,Chuky[j-1]); Readln(Ft); For i:=1 to SoTang Begin For j:=1 to SoDd Read(Ft,DdArr[i-1,j-1]); Readln(Ft); End; CloseFile(Ft); ValueInit:=True; Tform5.Create(Self); Close; end; end { -} unit bangtinh; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, Buttons, Spin, Bangketqua, ddinput, chonlua; type TForm3 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; SpEdt1: TSpinEdit; StrGrd1: TStringGrid; Label3: TLabel; CbBox1: TComboBox; Label4: TLabel; CbBox2: TComboBox; Label5: TLabel; CbBox3: TComboBox; Label6: TLabel; Edit2: TEdit; Label7: TLabel; Edit3: TEdit; P29 Label8: TLabel; Edit4: TEdit; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Label9: TLabel; Label10: TLabel; Label11: TLabel; CbBox4: TComboBox; Label12: TLabel; Edit5: TEdit; BitBtn1: TBitBtn; procedure BitBtn3Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure SpEdt1Change(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation uses main; {$R *.dfm} Var HCLFile:File of HCLType; HCLArr:Array of HCLType; procedure TForm3.BitBtn3Click(Sender: TObject); begin Close; end; procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction); begin Release; end; procedure TForm3.FormCreate(Sender: TObject); Var i,Tong:Integer; begin StrGrd1.ColWidths[0]:=32; StrGrd1.ColWidths[1]:=64; StrGrd1.ColWidths[2]:=76; P30 StrGrd1.Cells[0,0]:='Tầng'; StrGrd1.Cells[1,0]:='Chiều cao h'; StrGrd1.Cells[2,0]:='Trọng lượng W'; StrGrd1.RowCount:=SpEdt1.Value+1; AssignFile(HclFile,HclDataFileName); {$i-} Reset(HclFile); {$I+} If IoResult0 then begin ShowMessage('Du lieu ve file ket cau chiu dong dat chua co!'); Release; end; Tong:=FileSize(HclFile); SetLength(HClArr,Tong); For i:=1 to Tong Read(HClFile,HCLArr[i-1]); CloseFile(HclFile); For i:=1 to Tong CbBox2.Items.Append(HCLArr[i-1].Name); For i:=1 to CbBox4.Items.Append(TitleBg2_6[i]); For i:=1 to CbBox3.Items.Append(TitleBg2_8[i]); CheckDynamic:=False; end; procedure TForm3.BitBtn2Click(Sender: TObject); Var Err,ErrT,i,j:Integer; Tmp1,Tmp2:Real; begin ErrT:=0; For j:=1 to SpEdt1.Value For i:=1 to Begin Val(StrGrd1.Cells[i,j],Tmp1,Err); ErrT:=ErrT+abs(Err); End; Val(Edit2.Text,Tmp1,Err); ErrT:=ErrT+abs(Err); Val(Edit3.Text,Tmp1,Err); ErrT:=ErrT+abs(Err); Val(Edit4.Text,Tmp1,Err); ErrT:=ErrT+abs(Err); Val(Edit5.Text,Tmp1,Err); ErrT:=ErrT+abs(Err); If ErrT>0 then begin ShowMessage('Du lieu nhap sai quy cach!'); P31 Exit; End; SoTang:=SpEdt1.Value; SumHigh:=0; SumWeight:=0; For i:=1 to SpEdt1.Value Begin SumHigh:=Sumhigh+StrToFloat(StrGrd1.Cells[1,i]); SumWeight:=SumWeight+StrToFloat(StrGrd1.Cells[2,i]); End; If SumHigh>HClArr[CbBox2.ItemIndex].MaxHigh[CbBox1.ItemIndex+1] then Begin ShowMessage('Khong the xay qua cao tren dat nay, Chon lai loai dat hoac chieu cao cong trinh'); SpEdt1.Enabled:=True; Exit; End; R:=HCLArr[CbBox2.ItemIndex].R; Iqt:=Bg2_6[CbBox4.ItemIndex+1]; Ss:=StrToFloat(Edit2.Text); S1:=StrToFloat(Edit3.Text); TL:=StrToFloat(Edit4.Text); gtt:=StrToFloat(Edit5.Text); If SsSsBg2_3[5] then Fa:=Bg2_3[CbBox1.ItemIndex+1,5] Else Begin For i:=1 to If (Ss>SsBg2_3[i]) and (SsS1Bg2_4[i]) and (S1=0.6*gtt then Csgh:=0.5*S1/(R/Iqt); If Cs