BÁO cáo môn học THỰC HÀNH KIẾN TRÚC máy TÍNH CE119 làm QUEN với lập TRÌNH hợp NGỮ

36 76 0
BÁO cáo môn học THỰC HÀNH KIẾN TRÚC máy TÍNH CE119 làm QUEN với lập TRÌNH hợp NGỮ

Đ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

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN KHOA KỸ THUẬT MÁY TÍNH BÁO CÁO MƠN HỌC THỰC HÀNH KIẾN TRÚC MÁY TÍNH CE119 GIẢNG VIÊN HƯỚNG DẪN: SINH VIÊN THỰC HIỆN: TP HỒ CHÍ MINH, THÁNG 12 NĂM 20xx ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN KHOA KỸ THUẬT MÁY TÍNH BÁO CÁO MƠN HỌC THỰC HÀNH KIẾN TRÚC MÁY TÍNH CE119 GIẢNG VIÊN HƯỚNG DẪN: SINH VIÊN THỰC HIỆN: TP HỒ CHÍ MINH, THÁNG 12 NĂM 20xx ii MỤC LỤC Chương LÀM QUEN VỚI LẬP TRÌNH HỢP NGỮ 1.1 Lý thuyết 1.1.1 Cách cài đặt Ubuntu, Vim Perl 1.1.2 Cách sử dụng Vim .1 1.1.3 Lí thuyết chương trình hợp ngữ 1.2 Thực hành 1.2.1 Mô việc thực thi lệnh 1.2.2 Ý nghĩa chương trình 1.3 Bài tập 1.3.1 Khai báo chuỗi xuất chuỗi khai báo 1.3.2 Biểu diễn chuỗi nhớ 1.3.3 Xuất chuỗi nhập 1.3.4 Tính tổng hai số nguyên nhập từ bàn phím Chương CÁC CẤU TRÚC ĐIỀU KHIỂN 11 2.1 Lí thuyết 11 2.1.1 Cấu trúc if, if-else 11 2.1.2 Cấu trúc switch/case .11 2.1.3 Cấu trúc vòng lặp 11 2.2 Thực hành 11 2.2.1 Cấu trúc rẽ nhánh 11 2.2.2 Cấu trúc vòng lặp 12 2.3 Bài tập 12 2.3.1 Phân biệt ký tự nhập vào xuất ký tự liền trước, liền sau 12 2.3.2 Tìm số lớn tính toán theo yêu cầu .1 Chương CON TRỎ VÀ TRUY XUẤT BỘ NHỚ i 3.1 Lí thuyết 3.1.1 Kiến trúc ghi – ghi .2 3.1.2 Làm việc với mảng 3.1.3 Làm việc với trỏ 3.1.4 Tại nên sử dụng trỏ .2 3.2 Thực hành 3.2.1 Thao tác với trỏ 3.3 Bài tập 3.3.1 Nhập mảng số nguyên n phần tử thực yêu cầu sau .2 3.3.2 Nhập mảng số nguyên n phần tử .2 Chương THỦ TỤC (HÀM CON) 4.1 Lí thuyết 4.1.1 Thủ tục 4.1.2 Thủ tục với MIPS 4.1.3 Ví dụ 4.1.4 Lồng thủ tục 4.2 Thực hành 4.2.1 In cửa sổ I/O giá trị số int nhập vào cộng thêm .3 4.2.2 Tính giá trị biểu thức (a+b) – (c+d) (a-b) + (c-d) .3 4.2.3 Tính giá trị biểu thức (a+b) – (c+d) (e-f) 4.3 Bài tập 4.3.1 Tính giai thừa TÀI LIỆU THAM KHẢO ii DANH MỤC HÌNH ẢNH Danh mục hình ảnh iii DANH MỤC BẢNG Bảng iv DANH MỤC TỪ VIẾT TẮT ABC : nghĩa ABC v CHƯƠNG LÀM QUEN VỚI LẬP TRÌNH HỢP NGỮ 1.1 Lý thuyết 1.1.1 Cách cài đặt Ubuntu, Vim Perl Bước Cài ứng dụng Ubuntu Windows 10 + Start → Turn Windows features on or off → Windows Subsystem for Linux + Start → Store → Ubuntu → Get → Launch Bước Cài đặt Perl Vim Ubuntu + Sudo apt-get install perl + Sudo apt-get install vim + Sudo apt-get install vimtutor Bước Vimtutor để học cách sử dụng Vim 1.1.2 Cách sử dụng Vim Bài - Sử dụng phím h, j, k, l để di chuyển trỏ qua trái, xuống, lên trên, qua phải - Khi nhập khơng chắn, nhấn phím ESC tiến hành nhập lại - Để Vim, nhấn phím ESC, nhập :q! nhấn phím ENTER - Nhấn phím x để xoá ký tự nằm trỏ - Nhấn phím i để chèn thêm văn vào trước trỏ - Nhấn phím a để thêm văn - Sử dụng :wq để lưu thoát Bài - Để xoá từ trỏ đến từ tiếp theo, sử dụng :dw - Để xoá từ trỏ đến cuối hàng, sử dụng :d$ - Để xoá hàng, sử dụng :dd - Để lặp lại chuyển động, thêm vào trước số :2w - Format để thay đổi câu lệnh: operator [number] motion Trong đó: + operator: lệnh cần thực + number: số lần lặp lại + motion: di chuyển qua văn để thao tác (w – word, $ – đến cuối hàng) - Để di chuyển đầu hàng, sử dụng :0 (:zero) - Để hoàn tác hành động trước, sử dụng :u - Để hoàn tác thay đổi hàng, sử dụng :U - Để hoàn tác bỏ, sử dụng tổ hợp phím Ctrl+R Bài - Để trở văn vừa bị xoá: p, đặt văn bị xoá sau trỏ - Để thay ký tự chân trỏ: r - Ấn ce để thay đổi từ trỏ đến cuối từ - Ấn c$ để thay đổi đến cuối hàng Bài - ctrl + G : hiển thị vị trí file trạng thái file + G: di chuyển đến cuối file + Number G: di chuyển đến hàng số điền + gg: di chuyển đến hàng - Nhấn / để tìm cụm từ theo sau cụm từ + Tìm cụm từ lần nữa, nhấn n + Tìm cụm từ giống hướng ngược lại, nhấn N - Tìm cụm từ theo hướng lùi, nhấn ? thay cho / - Để trở từ nơi bạn nhấn: Ctrl + O (giữ Ctrl lúc nhấn o), lặp lại để trở Nhấn Ctrl + I để tiến tới - Nhấn % lúc trỏ (, [, { để tìm ), ], } phù hợp lại (dễ debug hơn) - Thay cho cũ hàng, nhấn :s/old/new - Thay mới cho tất cũ hàng, nhấn :s/old/new/g - Thay cụm từ hàng #, nhấn :#,#s/old/new/g - Thay tất lần xuất file, nhấn :%s/old/new/g - Để hỏi xác nhận sau lần thêm ‘c’, nhấn :%s/old/new/gc Bài - :!command thi hành câu lệnh - :w FILENAME: viết file Vim với tên FILENAME - v montion :w FILENAME: lưu dòng chọn file FILENAME - :r FILENAME: lấy lại đĩa FILENAME đặt vị trí trỏ - :r !dir: đọc output lệnh dir đặt vị trí trỏ Bài - Gõ o để mở hàng trỏ bắt đầu chế độ Insert - Gõ O để mở hàng trỏ - Gõ a để chèn văn sau trỏ - Gõ A để chèn văn sau hàng cuối - Gõ e để di chuyển câu lệnh tới cuối từ - y để chép văn bản, p để dán - Nhấn R in hoa để thay chế độ Replace phím nhấn - Gõ “:set xxx” cài lựa chọn cho “xxx” - Bỏ trước “no” để lựa chọn tắt: :set noic Bài - Gõ :help nhấn F1 để mở cửa sổ trợ giúp - Gõ :help cmd để tìm trợ giúp cmd - Gõ ctrl + W ctrl + W để nhảy đến cửa sổ khác - Gõ :q để đóng cửa sổ trợ giúp - Gõ : command, nhấn ctrl + D để nhìn hồn thành khả dụng, nhấn phím để sử dụng hồn thành 1.1.3 Lí thuyết chương trình hợp ngữ 1.1.3.1 Bộ nhớ - Lưu liệu theo byte, half, word - Một ký tự lưu byte - Một số nguyên lưu word - Một lệnh lưu word 1.1.3.2 Biểu diễn thơng tin - Kí số: + Hệ thập phân: Viết bình thường (17) + Hệ thập lục phân: Thêm tiền tố 0x (0x11) - Ký tự: Đặt cặp nháy đơn (‘d’) - Chuỗi: Đặt cặp nháy kép (“Integrated circuit”) (“d”) 1.1.3.3 Thanh ghi - Có 32 ghi đa dụng (từ 0->31) Bắt đầu Khởi tạo nhap[2] $v0 = 5, Syscall Nhập số thứ nhap[0] = nhap[1] = $v0 $v0 = 5, Syscall Nhập số thứ hai nhap[0] = $v0 Đ nhap[0] < $v0 S nhap[1] = $v0 $v0 = 1, Syscall Xuất nhap[0] (nhap[0] số lớn hơn) $t0 = nhap[0] $t1 = nhap[1] $a0 = $t0 + $t1 $a0 = $t0 – $t1 $a0 = $t0 × $t1 $v0 = 1, Syscall Xuất số nguyên Kết thúc Hình 2.2 – Sơ đồ thuật tốn tìm số lớn tính tốn c Chương trình: 20 $a0 = $t0 ÷ $t1 .data nhap:.space text main: # Nhap so1 addiu syscall $2, $0, 0x00000005 lui ori $1, 0x00001001 $16, $1, 0x00000000 sb sb $2, $2, # Nhap so2 addiu syscall 0x00000000($16) 0x00000004($16) $2, $0, 0x00000005 # So sanh lb $3, 0x00000000($16) slt $8, $3, $2 bne $8, $0, so2lon # So1 lon sb $2, 0x00000004($16) j tinhtoan so2lon: sb tinhtoan: xuat: $2, 0x00000000($16) lb lb $8, 0x00000000($16) #L $9, 0x00000004($16) #B lb addiu syscall $4,0x00000000($16) $2, $0,0x00000001 21 tong: add addiu syscall $4, $8, $9 $2, $0,0x00000001 hieu: sub addiu syscall $4, $8, $9 $2, $0,0x00000001 tich: mul addiu syscall $4, $8, $9 $2, $0,0x00000001 bne break div mflo addiu syscall $9, $0, thuong thuong: $8, $9 $4 $2, $0,0x00000001 22 Chương CON TRỎ VÀ TRUY XUẤT BỘ NHỚ 3.1 Lí thuyết 3.1.1 Kiến trúc ghi – ghi - Ví dụ: int a = 7; int b = 5; int c; c = a + b; - Ý tưởng: đưa giá trị biến a, b, c ô nhớ vào ghi tập ghi (của CPU), tiến hành tính tốn đưa vào ghi, sau đưa kết vào nhớ - Chương trình: data addrA: word addrB: word addrC: word text main: lui $1, 0x00001001 lw $8, 0x00000000($1) lui lw $1, 0x00001001 $9, 0x00000004($1) add $10, lui sw $1, 0x00001001 $10,0x00000008($1) $9, $8 3.1.2 Làm việc với mảng - Mảng với n phần tử chuỗi n phần tử liên tiếp nhớ Thao tác với mảng MIPS thao tác trực tiếp với byte/word nhớ + Để cấp phát chuỗi word byte nhớ, có giá trị khởi tạo sử dụng “.word” “.byte” “.data” + Để cấp phát chuỗi byte khơng có giá trị khởi tạo trước, sử dụng “.space” “.data” 23 - Ví dụ: clear1(int array[], int size) { int i; for (i = 0; i < size; i++) array[i] = 0; } - Ý tưởng: $a0 địa array, $a1 kích thước array (size), tìm địa phần tử mảng (bằng cách cộng 0, 4, 8, 12, vào địa mảng $a0) lưu giá trị đó, lặp lại đến biến i ($t0) khơng nhỏ kích thước mảng ($a1) - Chương trình: loop: text add $8, $0, $0 sll add sw addi slt bne $9, $8, 0x00000002 $10, $4, $9 $0, 0x00000000($10) $8, $8, 0x00000001 $11, $8, $5 $11, $0, loop 3.1.3 Làm việc với trỏ - Con trỏ biến lưu địa biến khác Thao tác với trỏ MIPS thao tác trực tiếp với địa nhớ - Ví dụ: clear2(int *array, int size) { int *p; for (p = &array[0]; p < &array[size]; p++) *p = 0; - Ý tưởng: $a0 địa array, $a1 kích thước array (size), trỏ $t0 địa phần tử đầu tiên, $t2 địa phần tử cuối (qua tính tốn), sau lặp lại việc thay đổi giá trị trỏ ($t0=0) dời trỏ sang địa phần tử ($t0+=4) trỏ $t0 không nhỏ $t2 (địa phần tử cuối) 24 - Chương trình: text add $8, $0, $4 sll $9, $5, 0x00000002 add $10,$4,$9 loop: sw $0, 0x00000000($8) addi $8, $8, 0x00000004 slt $11, $8, $10 bne $11, $0, loop 3.1.4 Lý nên sử dụng trỏ - Tốc độ nhanh (vì số câu lệnh vòng lặp (LOOP) sử dụng trỏ sử dụng mảng) - Đúng với chất việc truy xuất nhớ 3.2 Thực hành 3.2.1 Thao tác với mảng Cho mảng với cấp phát liệu nhớ sau: array1: size1: data word 5, 6, 7, 8, 1, 2, 3, 9, 10, word 10 array2: size2: byte word 16 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 array3: size3: space word 8 Mảng array1 có 10 words, kích thước lưu size1; Mảng array2 có 16 bytes, kích thước lưu size2; Mảng array3 có bytes, kích thước lưu size3 Viết code phần “.text” thực riêng phần việc:  In cửa sổ I/O MARS tất phần tử mảng array1 array2  Gán giá trị cho mảng array3 cho: array3[i] = array2[i] + array2[size2 – – i]  Người sử dụng nhập vào mảng thứ số phần tử cần lấy mảng đó, chương trình xuất phần tử tương ứng 25 Trả lời: Yêu cầu 1: xuất phần tử mảng array1 array2 cửa sổ I/O: - Ý tưởng: truy xuất phần tử mảng theo số mảng, tức nghĩa dựa vào số mảng để tính tốn địa phần tử xét (mảng array1 với phần tử kiểu word có độ lớn bytes, mảng array2 với phần tử có độ lớn byte), lặp lại cơng đoạn tính tốn đến số mảng khơng nhỏ kích thước mảng - Ta có sơ đồ thuật tốn sau: Bắt đầu Đ $t0 = $t1 = size1 $a1 = &array1 $t0 = $t2 = size2 $a2 = &array2 $a0 = &array1[$t0] $a0 = &array2[$t0] $v0 = 1, Syscall Xuất phần tử mảng $v0 = 1, Syscall Xuất phần tử mảng $t0 = $t0 + $t0 = $t0 + $t0 < $t1 S Đ $t0 < $t2 S Kết thúc Hình 3.1 – Sơ đồ thuật toán xuất phần tử mảng array1 array2 Yêu cầu 2: thực gán giá trị cho phần tử mảng array3 theo biểu thức array3[i] = array2[i] + array2[size2 – – i] - Ý tưởng: truy xuất phần tử mảng theo số mảng (tương tự yêu cầu 1), nhiên việc tính tốn địa phần tử array2[size2 – – i] có khác so với 26 phần tử array2[i] chỗ ta phải tính địa phần tử cuối mảng array2 trước - Ta có sơ đồ thuật tốn sau: Bắt đầu $t0 = $t3 = size3 $a3 = &array3 $t2 = size2 – $a2 = &array2 $s1 = &array3[$t0] $s2 = &array2[$t0] $s3 = &array2[size2 – – $t0] $t4 = *($s2) $t5 = *($s3) $t6 = $t5 + $t4 *($s1) = $t6 $t0 = $t0 + Đ $t0 < $t3 S Kết thúc Hình 3.2 – Sơ đồ thuật toán thực gán giá trị cho phần tử mảng array3 Yêu cầu 3: xuất phần tử tuỳ chọn tương ứng 27 - Ý tưởng: số nguyên nhập vào truy xuất mảng array1, truy xuất mảng array2; thực việc truy xuất phần tử có số số nguyên nhập vào thứ hai tương tự cách tính yêu cầu - Ta có sơ đồ thuật tốn sau: Bắt đầu $v0 = 5, Syscall Nhập số nguyên $s0 = $v0 $s0 (array1) (array2) $v0 = 5, Syscall Nhập số nguyên $s1 = $v0 $s1 số phần tử mảng $s0 == $a0 = array1[$s1] $a0 = array2[$s1] $v0 = 1, Syscall Xuất số nguyên Kết thúc Hình 3.3 – Sơ đồ thuật tốn xuất phần tử tuỳ chọn 28 Chương trình: 3.2.2 Thao tác với trỏ Thực lại nội dung “Thao tác với mảng” với trỏ Trả lời: - Ý tưởng: truy xuất phần tử số mảng điều kiện dừng, biến chạy phải so sánh với kích thước mảng, cịn thao tác với trỏ biến trỏ phải so sánh với biến trỏ khác chứa địa phần tử cuối Sơ đồ giải thuật: Bắt đầu Đ $t0 = &array1[0] $t1 = &array1[size1 – 1] $t0 = &array2[0] $t2 = &array2[size1 – 1] $a0 = *($t0) $a0 = *($t0) $t0 = &array3[0] $t3 = &array3[size3 – 1] $s2 = &array2[$t0] $s3 = &array2[size2 – – $t0] $v0 = 1, Syscall Xuất số nguyên $v0 = 1, Syscall Xuất số nguyên *($t0) = *($s2) + *($s3) $t0 = $t0 + $t0 = $t0 + $t0 = $t0 + $t0 < $t1 S Đ $t0 < $t2 $v0 = 5, Syscall Nhập số nguyên $v0 = 5, Syscall Nhập số nguyên $s0 = $v0 $s1 = $v0 S Đ $t0 < $t2 $s0 == $a0 = array1[$s1] $a0 = array2[$s1] $v0 = 1, Syscall Xuất số nguyên Kết thúc 29 Hình 3.4 – Sơ đồ giải thuật toán thao tác với trỏ - Chương trình: 3.3 Bài tập 3.3.1 Bài tập a Đề bài: Nhập mảng số nguyên n phần tử (nhập vào số phần tử giá trị phần tử), xuất cửa sổ I/O MARS theo yêu cầu sau:  Xuất giá trị lớn nhỏ mảng  Tổng tất phần tử mảng  Người sử dụng nhập vào số phần tử giá trị phần tử in cửa sổ b Sơ đồ giải thuật: c Chương trình: 3.3.2 Bài tập a Đề bài: Nhập mảng số nguyên n phần tử (nhập vào số phần tử giá trị phần tử), xuất cửa sổ I/O MARS theo yêu cầu sau:  Xuất giá trị lớn nhỏ mảng  Tổng tất phần tử mảng  Người sử dụng nhập vào số phần tử giá trị phần tử in cửa sổ b Sơ đồ giải thuật: c Chương trình: 30 CHƯƠNG THỦ TỤC (HÀM CON) 4.1 Lí thuyết 4.1.1 Thủ tục - Quy trình thực hiện: Lệnh A Gọi thủ tục Quay chương trình Thực thi thủ tục Lệnh C Hình 4.1 – Quy trình thực lời gọi thủ tục 4.1.2 Thủ tục với MIPS Bước Chuẩn bị đối số Bước Lưu trạng thái Bước Nhảy tới thủ tục Bước Thực thi thủ tục Bước Chuẩn bị kết Bước Quay chương trình (tại lệnh kế tiếp)  Quy ước: + Thanh ghi đối số: $a0 - $a3 + Thanh ghi kết quả: $v0, $v1 + Thanh ghi tạm: $t0 - $t9 + Thanh ghi lưu trữ: $s0 - $s7 + Thanh ghi địa trả về: $ra + Thanh ghi trỏ ngăn xếp: $sp  Lưu ý: phải bảo toàn liệu ngăn xếp trước gọi thủ tục 31 … 4.1.3 VÍ DỤ void main ( ) { int s = 0; s = sum(15,12); } int sum(int a, int b) { int t = a + b; return t; } add $s0, $0, $0 addi $a0, $0, 15 add $a1, $0, 12 jal sumPro add $s0, $0, $v0 j exit sumPro: add $v0, $a0, $a1 jr $ra exit: 4.1.4 LỒNG THỦ TỤC Bước Bước Bước Bước Bước Bước Chuẩn bị đối số Lưu trạng thái Nhảy tới thủ tục Thực thi thủ tục Chuẩn bị kết Quay chương trình (tại lệnh kế tiếp)  Lưu ý: Trước gọi thủ tục khác phải lưu lại ghi $ra nhảy tới thủ tục (Nếu muốn chắn lưu lại ghi $sp) 32 4.2 Thực hành 4.2.1 IN RA CỬA SỔ I/O GIÁ TRỊ CỦA SỐ INT NHẬP VÀO CỘNG THÊM abc 4.2.2 TÍNH GIÁ TRỊ BIỂU THỨC (A+B) – (C+D) VÀ (A-B) + (C-D) abc 4.2.3 TÍNH GIÁ TRỊ BIỂU THỨC (A+B) – (C+D) VÀ (E-F) abc 4.3 Bài tập 4.3.1 TÍNH GIAI THỪA abc 33 TÀI LIỆU THAM KHẢO [1] Làm quen cách sử dụng Vim với Vimtutor, http://notes.viphat.work/vimtutor 34 ...ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN KHOA KỸ THUẬT MÁY TÍNH BÁO CÁO MƠN HỌC THỰC HÀNH KIẾN TRÚC MÁY TÍNH CE119 GIẢNG VIÊN HƯỚNG DẪN: SINH VIÊN THỰC... Chương LÀM QUEN VỚI LẬP TRÌNH HỢP NGỮ 1.1 Lý thuyết 1.1.1 Cách cài đặt Ubuntu, Vim Perl 1.1.2 Cách sử dụng Vim .1 1.1.3 Lí thuyết chương trình hợp ngữ. .. mục hình ảnh iii DANH MỤC BẢNG Bảng iv DANH MỤC TỪ VIẾT TẮT ABC : nghĩa ABC v CHƯƠNG LÀM QUEN VỚI LẬP TRÌNH HỢP NGỮ 1.1 Lý thuyết 1.1.1 Cách cài đặt Ubuntu, Vim Perl Bước Cài ứng dụng Ubuntu Windows

Ngày đăng: 09/04/2022, 06:39

Từ khóa liên quan

Mục lục

  • Chương 1. LÀM QUEN VỚI LẬP TRÌNH HỢP NGỮ

    • 1.1 Lý thuyết

      • 1.1.1. Cách cài đặt Ubuntu, Vim và Perl

      • 1.1.2. Cách sử dụng Vim

      • 1.1.3. Lí thuyết chương trình hợp ngữ

        • 1.1.3.1. Bộ nhớ

        • 1.1.3.2. Biểu diễn thông tin

        • 1.1.3.3. Thanh ghi

        • 1.1.3.4. Cấu trúc chương trình

        • 1.1.3.5. Khai báo dữ liệu

        • 1.2. Thực hành

          • 1.2.1. Mô phỏng việc thực thi các lệnh

          • 1.2.2. Ý nghĩa của chương trình

          • 1.3 Bài tập

            • 1.3.1. Khai báo chuỗi và xuất các chuỗi được khai báo

            • 1.3.2. Biểu diễn chuỗi trên dưới bộ nhớ

            • 1.3.3. Xuất ra đúng chuỗi đã nhập

            • 1.3.4. Tính tổng hai số nguyên được nhập từ bàn phím

            • Chương 2. CÁC CẤU TRÚC ĐIỀU KHIỂN

              • 2.1. Lí thuyết

                • 2.1.1. Cấu trúc if, if-else

                • 2.1.2. Cấu trúc switch/case

                • 2.1.3. Cấu trúc vòng lặp

                • 2.2. Thực hành

                  • 2.2.1. Cấu trúc rẽ nhánh

                  • 2.2.2. Cấu trúc vòng lặp

                  • 2.3. Bài tập

                    • 2.3.1. Phân biệt ký tự nhập vào và xuất ký tự liền trước, liền sau.

                    • 2.3.2. Tìm số lớn hơn và tính toán theo yêu cầu

Tài liệu cùng người dùng

Tài liệu liên quan