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

Báo cáo kỹ thuật lập trình hàm và tối ưu mã nguồn

31 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 31
Dung lượng 372,8 KB

Nội dung

Nguyễn Duy Khánh Linh – 20204839 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÁO CÁO KỸ THUẬT LẬP TRÌNH Hàm và tối ưu mã nguồn BUỔI 2 – TUẦN 37 NGUYỄN DUY KHÁNH LINH Linh ndk204839@sis hust edu vn Ngành Kỹ Thuật[.]

Nguyễn Duy Khánh Linh – 20204839 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÁO CÁO KỸ THUẬT LẬP TRÌNH Hàm tối ưu mã nguồn BUỔI – TUẦN 37 NGUYỄN DUY KHÁNH LINH Linh.ndk204839@sis.hust.edu.vn Ngành Kỹ Thuật Lập Trình – IT2 Giảng viên hướng dẫn: Lê Thị Hoa Bộ mơn: Kỹ thuật lập trình Viện: Cơng nghệ Thơng tin Truyền thông IT3040 – 20212 – 715027 HÀ NỘI, 12/6/2022 Chữ ký GVHD Nguyễn Duy Khánh Linh – 20204839 MỤC LỤC Bài thực hành – tuần 37: Hàm tối ưu mã nguồn Phần Thực hành hàm .3 I Truyền tham trị, tham chiều tham số ngầm định: .3 Bài tập 1: Truyền tham trị Bài tập 2: Truyền tham chiếu .4 Bài tập 3: Tham số ngầm định II Đa hóa hàm: Bài tập 4: Đa hóa hàm .6 Bài tập 5: Đa hóa tốn tử III Con trỏ hàm tham số hóa hàm Bài tập 6: Con trỏ hàm .9 Bài tập 7: Khái quát hóa hàm 11 IV Biểu thức Lamda hàm nặc danh 12 Bài tập 8: Sắp xếp 12 Phần Thực hành tối ưu mã nguồn .13 Bài tập 9: Tính hàm sigmoid 13 Bài tập 10: Tính tích hai ma trận vuông 17 Phần 3: Bài tập nhà 20 Bài tập 11: Tính tích hai đa thức 20 Bài tập 12: Map Sort 22 Bài tập 13: Big Integer .24 IT3040 – 20212 – 715027 Nguyễn Duy Khánh Linh – 20204839 Bài thực hành : Hàm tối ưu mã nguồn Phần Thực hành hàm I Truyền tham trị, tham chiều tham số ngầm định: Bài tập 1: Truyền tham trị Viết hàm tính độ dài cạnh huyền tam giác theo độ dài hai cạnh góc vng Bài làm #include #include float get_hypotenuse(float x, float y) { return sqrt(x*x+y*y); // cạnh huyền bậc hai tổng bình phương hai cạnh cịn lại } int main(){ printf("HO VA TEN: Nguyen Duy Khanh Linh\nMSSV: 20204839\n"); float x, y; scanf("%f%f", &x, &y); float z = get_hypotenuse(x, y); printf("z = %.2f\n", z); return 0; } IT3040 – 20212 – 715027 Nguyễn Duy Khánh Linh – 20204839 Bài tập 2: Truyền tham chiếu Viết hàm hoán vị vòng tròn biến a, b, c Sau thực hàm, biến a, b, c tương ứng nhận giá trị b, c, a Bài làm #include void rotate(int&x, int&y, int&z) { int t=x; //tạo biến t để tránh liệu x=y; y=z; z=t; } //hàm hốn vị vịng trịn biến int main() { printf("HO VA TEN: Nguyen Duy Khanh Linh\nMSSV: 20204839\n"); int x, y, z; scanf("%d %d %d", &x, &y, &z); //nhập số nguyên x, y, z printf("Before: %d, %d, %d\n", x, y, z); //in giá trị x, y, z trước hoán vị rotate(x, y, z); // gọi hàm hoán vị printf("After: %d, %d, %d\n", x, y, z); //in giá trị x, y, z sau hoán vị return 0; } IT3040 – 20212 – 715027 Nguyễn Duy Khánh Linh – 20204839 Bài tập 3: Tham số ngầm định Viết chương trình yêu cầu nập giá trị cho số nguyên x nhỏ 100 In giá trị ax2+bx+c với a, b, c định sẵn Bài làm #include /*nếu không khai báo giá trị a b c giá trị mặc định a, b, c 2, 1, */ int get_value(int x, int a=2, int b=1, int c=0) { return a*x*x + b*x + c; } //hàm tính giá trị biểu thức ax2+bx+c int main() { printf("HO VA TEN: Nguyen Duy Khanh Linh\nMSSV: 20204839\n"); int x; scanf("%d", &x); int a=2; // giá trị mặc định a int b=1; // giá trị mặc định a int c=0; // giá trị mặc định a scanf("%d %d %d", &a, &b, &c); // nhập số nguyên a, b, c từ bàn phím printf("a=2, b=1, c=0: %d\n", get_value(x)); //hàm chạy với giá trị x, a=2, b=1, c=0 printf("a=%d, b=1, c=0: %d\n", a, get_value(x, a)); //hàm chạy với giá trị x, a, b=1, c=0 printf("a=%d, b=%d, c=0: %d\n", a, b, get_value(x, a, b)); //hàm chạy với x, a, b, c=0 printf("a=%d, b=%d, c=%d: %d\n", a, b, c, get_value(x, a, b, c)); //hàm chạy với x, a, b, c return 0; } IT3040 – 20212 – 715027 Nguyễn Duy Khánh Linh – 20204839 II Đa hóa hàm: Bài tập 4: Đa hóa hàm Viết hàm tính lập phương số nguyên số thực Bài làm include int cube(int x) { return x*x*x; } // Hàm tính lập phương số nguyên double cube(double x) { return x*x*x; } //Hàm tính lập phương số thực int main() { printf("HO VA TEN: Nguyen Duy Khanh Linh\nMSSV: 20204839\n"); int n; double f; scanf("%d %lf", &n, &f); //Nhập số nguyên số thực printf("Int: %d\n", cube(n)); //gọi hàm thị giá trị lập phương số nguyên printf("Double: %.2lf\n", cube(f)); //gọi hàm thị giá trị lập phương số thực return 0; } IT3040 – 20212 – 715027 Nguyễn Duy Khánh Linh – 20204839 Bài tập 5: Đa hóa tốn tử Viết tốn tử tính tổng, hiệu, tích thương hai số phức Bài làm #include #include #include #include using namespace std; struct Complex { double real; double imag; Complex(double r, double i) { real = r; imag = i; } }; Complex operator+(Complex a, Complex b) { // xây dựng toán tử cộng số thực return Complex(a.real + b.real, a.imag + b.imag); } // xây dựng toán tử cộng số thực Complex operator-(Complex a, Complex b) { return Complex(a.real - b.real, a.imag - b.imag); } // xây dựng toán tử trừ số thực Complex operator*(Complex a, Complex b) { return Complex(a.real * b.real - a.imag * b.imag, IT3040 – 20212 – 715027 Nguyễn Duy Khánh Linh – 20204839 a.real * b.imag + a.imag * b.real); }// xây dựng toán tử nhân số thực Complex operator/(Complex a, Complex b) { return Complex((a.real * b.real + a.imag * b.imag) / (b.real * b.real + b.imag * b.imag), (a.imag * b.real - a.real * b.imag) / (b.real * b.real + b.imag * b.imag)); } // xây dựng toán tử chia số thực ostream &operator

Ngày đăng: 03/03/2023, 06:33

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

TÀI LIỆU LIÊN QUAN

w