1 BỘ BÀI TẬP THỰC HÀNH KỸ THUẬT LẬP TRÌNH C LỜI NÓI ĐẦU Những năm gần đây, các học phần về kỹ thuật lập trình tại trường Đại học Giao thông vận tải đều được tổ chức thi trên máy Vì thế, để đạt được kế.
BỘ BÀI TẬP THỰC HÀNH KỸ THUẬT LẬP TRÌNH C LỜI NÓI ĐẦU Những năm gần đây, học phần kỹ thuật lập trình trường Đại học Giao thông vận tải tổ chức thi máy Vì thế, để đạt kết cao học tập, sinh viên không học lý thuyết mà cần phải rèn luyện khả lập trình tốt Bộ tập Bộ môn Công nghệ phần mêm, khoa Công nghệ thông tin biên soạn nhằm giúp sinh viên hệ thống lại nội dung ngôn ngữ lập trình C, đồng thời cung cấp dẫn tập để em luyện tập, bước nâng cao kỹ lập trình Bộ tập biên soạn theo hướng thực hành, gồm năm bài, tương ứng với năm chủ đề học phần Kỹ thuật lập trình C: - Bài 1: Các khái niệm lệnh điều khiển Bài 2: Mảng chiều Bài 3: Mảng chiều Bài 4: Hàm Bài 5: Cấu trúc Nội dung có bố cục tương tự nhau, tóm tắt lý thuyết, số tập mẫu (có sẵn chương trình), tập bắt buộc sinh viên cần hoàn thành cuối số tập làm thêm Mặc dù cố gắng để có kết tốt nhất, chắn Bộ tập cịn có hạn chế, khiếm khuyết Chúng mong muốn trình sử dụng, thầy em sinh viên có ý kiến phản hồi để chúng tơi tiếp tục chỉnh sửa, hồn thiện Các ý kiến đóng góp xin gửi về: Bộ mơn Cơng nghệ phần mềm (phòng 310 nhà A9, trường ĐH GTVT), Email: cuonggt@gmail.com Bài 1: Các khái niệm lệnh điều khiển Mục đích thực hành Giúp sinh viên làm quen với cơng cụ lập trình DevC++, thử nghiệm viết chương trình đơn giản, qua nắm vững kiến thức như: Khái niệm biến, hằng,kiểu liệu Biết cách khai báo sử dụng lập trình giải tốn Các lệnh điều khiển C điều khiển rẽ nhánh if, if…else, lệnh điều khiển cho phép tổ chức vòng lặp để lặp lại lệnh for, while, do…while vận dụng để giải toán Tóm tắt lý thuyết Biến, hằng, kiểu liệu: 1.1 Biến Biến đối tượng lưu giá trị thay đổi giá trị chương trình Trong C trước sử dụng biến phải khai báo để chương trình dịch cấp phát nhớ cho biến Biến khai báo đầu chương trình (sau #include, #define) hay khai báo đầu hàm hay khối lệnh Trong chương trình sử dụng lệnh gán giá trị cho biến hay nhập giá trị từ bàn phím, từ file Cú pháp khai báo sau: Kiểu danh_sách_biến; Trong Kiểu kiểu liệu có sẵn C hay người dùng định nghĩa Ví dụ: int i, j, m, n; /* Khai báo biến kiểu nguyên */ float x, y, z; /* Khai báo biến kiểu thực */ char ch1, ch2; /* Khai báo biến kiểu kí tự */ 1.2 Hằng Hằng đại lượng có giá trị khơng thay đổi chương trình C, khai báo trước sử dụng để sử dụng theo tên chương trình sử dụng giá trị trực tiếp biểu thức cần Ví dụ khai báo hằng: const int Max = 100; /* Khai báo có tên Max giá trị 100 */ 1.3 Các kiểu liệu C C định nghĩa sẵn số kiểu liệu kiểu số nguyên kiểu số thực, người dùng khai báo biến theo kiểu viết chương trình Đi với kiểu liệu có phép tốn tương ứng Các kiểu số nguyên Kiểu char int long long int Phạm vi biểu diễn -128 → 127 -32768 → 32767 -2147483648→2147483647 Kích thước byte byte byte Các kiểu số thực Kiểu float double Phạm vi biểu diễn 3.4E-38 → 3.4E+38 1.7E-308 → 1.7E+308 Kích thước byte byte long double 3.4E-4932 → 1.1E4932 10 byte Một số ví dụ minh họa: Ví dụ 1: Nhập bán kính hình trịn In hình chu vi diện tích hình trịn #include int main() { const float PI=3.14; /* Khai báo hằng*/ float r; printf("Nhap ban kinh duong tron:"); scanf("%f",&r); printf("Chu vi hinh tron=%f Dien tich hinh tron= %f ", 2*r*PI,r*r*PI); } Ví dụ 2: Viết chương trình C nhập từ bàn phím số ngun, in hình tổng, tích trung bình cộng số #include int main() { int a, b, c, tong, tich; printf(“Nhap so nguyen:”); scanf(“%d%d%d”,&a,&b,&c); tong=a+b+c; tich=a*b*c; printf(“Tong so = %d \nTich so = %d\n”,tong, tich); printf(“Trung binh cong so = %f”, (float)tong/3); } Bài tập: Viết chương trình nhập vào số đo nhiệt độ theo độ F (Fahrenheit) xuất nhiệt độ tương đương theo độ C (Celsius), sử dụng công thức chuyển đổi: C = (F – 32)*5/9 Viết chương trình nhập vào giờ, phút giây, đổi sang giây in kết hình Viết chương trình nhập vào thời gian cơng việc tính giây Hãy chuyển đổi in hình thời gian dạng giờ, phút, giây Các câu lệnh điều khiển 2.1 Các câu lệnh điều khiển rẽ nhánh if, if …else Lệnh if cho phép lựa chọn để thực hai nhánh tùy thuộc vào điều kiện (khác không) hay sai (bằng không) biểu thức, gọi biểu thức điều kiện Mỗi nhánh lệnh if khối lệnh khác Lệnh if có dạng sau: Dạng 1: if () Nếu có giá trị khác 0, khối lệnh thực hiện, ngược lại, lệnh sau thực Ví dụ 1: Nhập số nguyên a, b, c từ bàn phím Tìm in giá trị lớn giá trị nhỏ số #include int main(){ int a, b, c, max, min; printf(“Nhap so nguyen:”); scanf(“%d%d%d”,&a,&b,&c); max=min=a; if(maxc) min=c; printf(“So lon nhat la:%d, so nho nhat la:%d”,max, min); } Dạng 2: if () else Nếu có giá trị khác 0, thực hiện, ngược lại, thực Ví dụ 2: Giải phương trình ax+b=0 Trong a, b số thực nhập từ bàn phím #include int main() { float a, b; printf(“Nhap a, b:”); scanf(“%f%f”,&a,&b); if(a!=0) printf(“Phuong trinh co nghiem nhat x=%f”, -b/a); else /*a=0*/ if(b==0) printf(“Phuong trinh nghiem dung voi moi x”); else /*b!=0*/ printf(“Phuong trinh vo nghiem“); } Ví dụ 3: Viết chương trình tính tiền điện với số số cũ nhập vào từ bàn phím In hình số cũ, số số tiền phải trả Biết 100 kWh đầu giá 1000, từ kWh 101 – 150 giá 1200, từ kWh 151 – 200 giá 2000, từ 201 trở lên giá 2500 #include int main() { int csc, csm, dntt; float tiendien; nhapdulieu: printf("Nhap csc, csm:"); scanf("%d%d",&csc,&csm); if(csm < csc) { printf("Nhap du lieu sai, nhap lai!\n"); goto nhapdulieu; } dntt=csm-csc; tiendien=0; if (dntt