1. Trang chủ
  2. » Tất cả

T2_2017_kynangbiensoanchuongtrinh(tiet1+2)-vandexulyxau

41 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 267 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Học một NNLT mỗi năm Học một ngôn ngữ lập trình mỗi năm sẽ làm thay đổi cách tư duy lập trình cho bạn... Nhìn lại các đoạn code trong quá khứ  Nhìn lại các đoạn code bạn viết trong quá

Trang 1

Kỹ năng biên soạn chương trình

Trang 3

2 Không ngừng học hỏi

 Điều quan trọng nhất là không bao giờ ngừng học hỏi Luôn cố gắng để thực hiện cải thiện khả năng của mình

Trang 4

3 Học một NNLT mỗi năm

 Học một ngôn ngữ lập trình mỗi năm sẽ làm thay đổi cách tư duy lập trình cho bạn

Trang 5

3 Nhìn lại các đoạn code trong quá khứ

 Nhìn lại các đoạn code bạn viết trong quá khứ và nhận ra nó

tồi tệ như thế nào Như Churchill từng nói: “Những người

không học hỏi từ quá khứ chắc chắn sẽ lặp lại nó!”

(phân tích sai lầm của học sinh)

Trang 6

4 Lập trình cùng với bạn bè

 Lập trình cùng với một lập trình viên khác có thể làm tăng chất lượng đoạn code của mình, mở rộng tầm nhìn của bạn, và giúp bạn làm việc như là một thành viên của nhóm

 (sắp tới học lý thuyết trò chơi)

Trang 7

5 Đọc và suy ngẫm về code

 Đọc và suy ra code được viết bởi những người khác nhau sẽ làm cho bạn có những suy nghĩ khác về code của mình Viết tài liệu cho code của người khác Nó giúp bạn hiểu cách người khác nghĩ và lập trình, giải thích một vài điều khiến bạn tìm thấy những lỗ hổng kiến thức của mình

Trang 8

 Tải về các tài liệu trên mạng

 Đọc sách các thầy cô giới thiệu

Trang 9

7 Các diễn đàn về C++

 Tham gia các diễn đàn về lập trình

Trang 10

Chủ đề cần giao

 Cách viết code trong C++ hiệu quả (ví dụ: dùng hàm thay cho đoạn lệnh nào?, dùng define thay cho một câu, dùng hàm thay thế cho một đoạn lệnh, lấy ví dụ, …………)

 Cách tạo ra bộ test nhanh để chấm trên themis bằng C++

 Tìm hiểu sâu về cách gỡ rối khi biên soạn chương trình bằng C++ (ví dụ kiểm tra đoạn chương trình con như thế nào, kiểm tra giá trị các biến trong C++ như thế nào)

 Tìm hiểu về các thư viện trong C++, và một vài ứng dụng giúp tăng hiệu quả trong việc viết code bằng c++

 Đề tài mở do học sinh tự nghĩ ra (liên quan đến việc code trong c++ hiệu quả nhất, hay sai lầm thường gặp khiến tốc độ

chương trình chậm,……)

 Một tuần chuẩn bị, tuần từ 28.02 báo cáo lấy điểm một tiết

Trang 11

 Gồm 6 nhóm, tự chọn, mỗi nhóm từ 5-6 người, chọn một chủ

đề thích hợp, có thể trùng nhau, nhưng chất lượng phải cao

 Nộp bản slide, và bản word chi tiết (cỡ chữ 13.5, dãn dòng 1.5, căn lề đẹp)

 Chọn ra một nhóm trưởng, gửi bản phân công công việc cho giáo viên chủ nhiệm

 Lớp trưởng lập danh sách nhóm, gửi về cho các thành viên

 Chấm điểm nhóm dựa trên các tiêu chí: người thuyết trình,

chất lượng của slide thuyết trình, tinh thần làm việc của cả

nhóm, nhóm trưởng được ưu tiên về điểm từ 0.5 đến 1 điểm tùy cách làm việc

Trang 12

1 Khởi tạo biến trong C++

 Khởi tạo các mảng toàn bằng 0

Trang 13

1 Khởi tạo biến trong C++

Cách 1 Dùng vector (sự thay thế quá linh hoạt của mảng)

Trang 14

2 C++ nhanh hay chậm hơn C?

 Cin, cout trong C++ hay là printf và scanf trong C?

Trang 15

2 C++ nhanh hay chậm hơn C

 Cin, cout trong C++ hay là printf và scanf trong C?

Mặc định, cin/cout sẽ mất thời gian để đồng bộ hóa chúng với thư viện stdio của ngôn ngữ lập trình C, với mục đích bạn có thể gọi lẫn lộn giữa cin/cout với printf/scanf Vậy ta sẽ tắt việc

Trang 16

3.Khai báo số phần tử của mảng

 Có thể khai báo số phần tử của mảng tùy ý không?

Giả sử cho khai báo mảng int a[10], một biến kiểu dữ liệu int,

máy tính phải cấp phát một vùng nhớ là 4byte (4B), nhân với

10 biến sẽ bằng 40B Do vậy máy tính sẽ cấp phát vùng nhớ là 40B cho khái báo a[10]

Tương tự, với khai báo long long a[1000000], mỗi biến kiểu long long, máy tính phải cấp phát vùng nhớ là 8byte (8B), nhân với

10 mũ 6 là 8 nhân 10^6 B

1GB=2^30 B= 1073741824 xấp xỉ 10^9B

Trang 17

3 Khai báo số phần tử của mảng

Tương tự, với khai báo long long a[100000000], mỗi biến kiểu long long, máy tính phải cấp phát vùng nhớ là 8byte (8B), nhân với 10 mũ 8 là 8*10^8

1GB xấp xỉ 10^9 và bằng 1073741824B

Vậy chỉ cần khai báo thêm một mảng b[100000000], ta sẽ có 16*10^8=1600000000> 1073741824B hay lớn hơn 1GB

Trang 18

3 Giới hạn bộ nhớ trên themis

 Câu hỏi 1 Tại sao đề thi nước ngoài có giới hạn bộ nhớ cho mỗi bài, mà đề thi Việt Nam lại ít khi thấy?

 Mặc định trên phần mềm Themis là 1GB

Trang 20

Vấn đề xử lý xâu trong C++

 Trong Pascal ví dụ về kí tự và xâu

 ‘a’, ‘A’, ‘0’, ‘9’, ‘lop 10 tin’

 Trong C++ phân biệt kí tự và xâu

 Kí tự thì viết giống như Pascal ‘a’, ‘A’, ‘0’,’9’

 Nhưng xâu trong C++ (string) thì viết là “lop 10 tin”

Trang 22

Vấn đề xử lý xâu trong C++

 Chuyển kí tự trong C++ thành số

 Cách 1 Trừ cho kí tự ‘0’

 Ví dụ: ‘9’ –’0’ chính bằng số 9 vì số thứ tự trong mã ASCII của ‘9’ là 57, số thứ tự trong bảng mã ASCII của ‘0’ là 48

 Cách 2 Lấy luôn kí tự trừ đi số 48

 Ví dụ string s=“9321”;

 Cout<<s[0]-48

Trang 23

cout<<c<<'\n'; //dua ra gia tri la ky tu 2

cout<<c+3;//dua ra gia tri la so 53

return 0;

}

Cách 2 Cộng số đó với 48, gán vào kí tự cần chuyển

Trang 24

 Chuyển từ mảng các kí tự thành số (thư viện stdlib.h)

 atoi(str) chuyển đổi mảng các kí tự thành một số int

 atol(str) chuyển đổi mảng các kí tự thành một số long

 atof(str) chuyển đổi mảng các kí tự thành một số float

Trang 26

Vấn đề xử lý xâu trong C++

 Chuyển từ số sang mảng các kí tự

 itoa(value, str, cơ số) chuyển đổi số int thành mảng các kí tự

 lltoa(value, str, cơ số) chuyển đổi số long long thành mảng các

kí tự

Trang 27

 long long a=1234500000000000000;

 char x[21];

 lltoa(a,x,10);

 cout<<x;

 return 0;

Trang 28

Vấn đề xử lý xâu trong C++

 Chuyển từ xâu thành số trong C++

 Cách 1 Chuyển từ xâu thành mảng các kí tự, rồi từ mảng các

kí tự đó dùng hàm để chuyển thành số

(Để chuyển xâu thành mảng các kí tự ta dùng hàm s.c_str(),

với s là biến xâu)

 Cách 2 Dùng đến lớp stringstream

Trang 29

Chuyển từ xâu sang số (cách 1)

Trang 30

Chuyển từ xâu sang số (cách 2)

Trang 31

Chuyển từ số sang xâu trong C++

Cách 1 Chuyển từ số sang mảng các kí tự (dùng hàm), rồi

chuyển mảng các kí tự này thành xâu lúc khai báo biến xâu

Cách 2 Dùng đến lớp stringstream

Trang 32

 { long long a=1000000000000000000;

 char x[21]; // mang cac ki tu

 lltoa(a,x,10);//bien doi so thanh mang cac ki tu

 string s(x);//khoi tao va chuyen mang ki tu thanh xau

 cout<<s;

 return 0;

Trang 33

 { long long a=1230000000000000000;

 char x[25]; // mang cac ki tu

 lltoa(a,x,10);//bien doi so thanh mang cac ki tu

 string s;//khoi tao va chuyen mang ki tu thanh xau

 s=string(x);

 cout<<s;

 return 0;

 }

Trang 36

Thư viện <algorithm>

Hoán đổi giá trị hai biến a và b dùng hàm swap(&a,&b)

Trang 37

Thư viện algorithm

Tìm giá trị min, max của hai số a và b

Trang 38

Thư viện algorithm

Trang 39

Thư viện algorithm

Nếu cần sắp một mảng các phần tử có kiểu struct thì cần

viết thêm hàm so sánh Ví dụ sắp xếp mảng PhanSo:

 #include<algorithm> using namespace std;

 struct PhanSo

{ long long ts; long long ms; };

 PhanSo a[100005]; long long n;

 bool SoSanh(const PhanSo &x, const PhanSo &y)

{ return (double)x.ts/x.ms < (double)y.ts/y.ms;}

Trang 40

Thư viện algorithm

 Hàm reverse: Đảo ngược thứ tự các phần tử trong khoảng [first,last)

Trang 41

Đối tượng kiểu pair

 #include <utility> // std::pair, std::make_pair

 #include <string> // std::string

 #include <iostream> // std::cout

 using namespace std;int main ()

 { pair <string,double> product1;

pair <string,double> product2 ("tomatoes",2.30); // value init

pair <std::string,double> product3 (product2); // copy

constructor

product1 = make_pair("lightbulbs",0.99); // using make_pair(move)product2.first = "shoes"; // the type of first is string

product2.second = 39.90; // the type of second is double

 cout << "The price of " << product1.first << " is $" <<

Ngày đăng: 22/05/2017, 09:22

TÀI LIỆU CÙNG NGƯỜI DÙNG

🧩 Sản phẩm bạn có thể quan tâm