Giải thuật đệ quy Kiểu dữ liệu cấu trúc Kiểu con trỏ Kiểu tập tin... Giới thiệu về môn học qua một số ví dụ Nhập, tính toán, xuất Đề bài: Viết chương trình nhập vào hai số nguy
Trang 2Bài 1 – Giới thiệu
Email ngohuudung@iuh.edu.vn
Blog ngohuudung.blogspot.com/
Trang 3 Giải thuật đệ quy
Kiểu dữ liệu cấu trúc
Kiểu con trỏ
Kiểu tập tin
Trang 4Tài liệu
Brian W Kernighan and Dennis M Ritchie The C
Programming Language (Second Edition) Prentice-Hall
Englewood Cliffs, New Jersey, 1988.
Slide, bài giảng
Bài tập thực hành
Bản dịch tiếng Việt: Giáo trình Ngôn ngữ lập trình C
Tham khảo thêm
Phạm Văn Ất Kỹ thuật lập trình C NXB Khoa học và Kỹ thuật,
1995
Randal E.Bryant and David R.O’Hallaron Computer’s Perspective,
2001
Bjarne Stroustrup The C++ Programming Language, AT&T Labs
Murray Hill, New Jersey Addison-Wesley, 1997.
Andy Oram and Greg Wilson, Beautiful Code, 2007
cplusplus.com
Trang 5Lịch trình
thuyết
Thực hành
Kiểm tra Tự học
2 Các thành phần cơ bản của Ngôn ngữ C 3 6
Trang 6Kiểm tra đánh giá
Trang 8Giới thiệu về môn học qua một số ví dụ
Nhập, tính toán, xuất
Đề bài: Viết chương trình nhập vào hai số nguyên, xuất ramàn hình tổng của hai số nguyên đó
Các bước chính để giải bài toán:
Xác định rõ yêu cầu của bài toán
Xây dựng giải thuật (cách giải) cho bài toán
Xây dựng trình tự để giải bài toán
Viết chương trình (cài đặt) và biên dịch
Chạy thử và sửa lỗi
Hoàn thiện và tối ưu hóa
Trang 9Tính tổng hai số nguyên
1 #include <stdio.h> /*Khai báo thư viện*/
Trang 10Nhận xét
Khai báo thư viện: Chứa các hàm cần dùng
#include <tên thư viện>
Khai báo biến: Lưu trữ dữ liệu
Kiểu <tên_biến_1>, <tên_biến_2>;
int x, y, tong, hieu, tich;
Trang 11Nhận xét (2)
Nhập: Nhập từ bàn phím giá trị cho biến
scanf( "<định dạng>" , &<tên biến>);
Xuất: Xuất ra màn hình dòng chữ, giá trị của biến
printf( "<định dạng>" , <biến 1>,<biến 2>);
printf( "Tong la %d \n" , tong);
printf( "Thuong la %f \n" , thuong);
Trang 12Tính tổng, hiệu, tích, thương
Đề bài: Viết chương trình nhập vào hai số nguyên, xuất ramàn hình tổng, hiệu, tích và thương của của số nguyên đó
Gợi ý:
1 #include <stdio.h> /*Khai báo thư viện*/
Trang 13Tính tổng, hiệu, tích, thương (tham khảo 1)
1 #include <stdio.h> /*Khai báo thư viện*/
2 int main() //Chương trình chính
4 int x, y, tong, hieu, tich;
5 float thuong; //Khai báo
6 printf( "Nhap so nguyen x: " );
13 thuong = (float)x / y; //Biểu thức
14 printf( "Tong la %d \n" , tong); // Xuất
15 printf( "Hieu la %d \n" , hieu); // Xuất
16 printf( "Tich la %d \n" , tich); // Xuất
17 printf( "Thuong la %f \n" , thuong); // Xuất
18 return 0; //Kết thúc
19 }
Trang 14Tính tổng, hiệu, tích, thương (tham khảo 2)
1 #include <stdio.h> //Khai báo thư viện
3 {
5 float thuong;
10 printf( "%d + %d = %d \n" , x, y, tong); // Xuất
Trang 15Hình chữ nhật
Đề bài: Viết chương trình nhập vào hai cạnh của hình chữnhật, xuất ra màn hình diện tích và chu vi của hình chữnhật
Trang 175 float DT, CV; // Diện tích, chu vi
7 scanf( "%f" , &r);
12 return 0;
13 }
Trang 186 float DT, CV; // Diện tích, chu vi
8 scanf( "%f" , &r);
13 return 0;
14 }
Trang 19Khoảng cách
Đề bài: Viết chương trình nhập vào tọa độ của hai điểmA(xA, yA) và B(xB, yB), xuất ra màn hình khoảng cáchgiữa hai điểm
Trang 20Khoảng cách (tham khảo)
1 #include <stdio.h>
2 #include <math.h>
4 {
5 float xA, yA; // A(xA, yA)
6 float xB, yB; // B(xB, yB)
9 scanf( "%f%f" , &xA, &yA);
11 scanf( "%f%f" , &xB, &yB);
14 return 0;
Trang 22Công cụ lập trình
C-Free
Trang 23http://borlandc.org/download-turbo-c-3-0-for- Eclipse: http://www.eclipse.org/ide/
Netbeans: https://netbeans.org/downloads/index.html
Ideone: Biên dịch online, hỗ trợ nhiều ngôn ngữ lập trình
https://ideone.com/
Trang 24Một số khái niệm khác
Thuật toán/giải thuật?
Cách giải bài toán
Toán tử?
Quan hệ, luận lý, tăng/giảm,
gán, trên bit…
Lệnh cấu trúc?
if, else, switch, case
for, while, do while
Trang 26Lệnh cấu trúc ? – if – else if - else
Ví dụ: Tìm giá trị lớn nhất giữa hai số nguyên A và B
Trang 28Toán tử tăng, giảm ?
Trang 29Toán tử trên bit ?
Trang 31Lệnh switch ? – Lựa chọn các trường hợp
6 struct tm *time = localtime(&t);
9 switch (today)
10 {
11 case 1: printf( "thu hai." ); break ;
12 case 2: printf( "thu ba." ); break ;
13 case 3: printf( "thu tu." ); break ;
14 case 4: printf( "thu nam." ); break ;
15 case 5: printf( "thu sau." ); break ;
16 default : printf( "cuoi tuan." );
17 }
18 return 0;
19 }
Trang 32Vòng lặp ? – for – while – do while
Đề bài: Xuất ra màn hình các số nguyên từ 0 đến 10
Trang 3314 }
Trang 359 scanf( "%[^\n]s" ,&ten);
13 return 0;
14 }
'C' 'h' 'a' 'o' '!' '\0'
Trang 37Kiểu dữ liệu cấu trúc ?
1 #include <stdio.h>
2 struct sinhvien // Khai báo kiểu struct
3 {
5 float diem; // Biến điểm kiểu số thực
6 };
8 {
9 struct sinhvien a; // Khai báo biến
14 }
Trang 38Kiểu con trỏ - pointer ?
1 #include <stdio.h>
3 {
8 printf( "Dia chi cua bien x: %p \n" , &x);
10 printf( "Gia tri cua *p: %d \n" , *p);
Trang 39Đọc tập tin ?
1 #include <stdio.h>
3 {
6 f = fopen( "input.txt" , "r" ); // Mở file
11 while (fgets(buffer, 256, f) != NULL)
15 }
Trang 40Ghi vào tập tin ?
1 #include <stdio.h>
3 {
6 f = fopen( "output.txt" , "w" ); // Mở file để ghi
Trang 41Nội dung tuần tới
Trang 42Nội dung môn học
Thuật toán/giải thuật?
Cách giải bài toán
Lệnh cấu trúc?
if, else, switch, case
for, while, do while
Trang 43C - ngôn ngữ lập trình nền tảng
Trang 44Một số gợi ý
Bám sát các nội dung thực hành (quan trọng!)
Đọc tài liệu, slide trước khi đến lớp
In tài liệu, slide, bài tập
Tự đặt câu hỏi và trả lời
Tự làm bài tập ở nhà
Tóm tắt các nội dung chủ yếu
Vắng học?