Lập trình cơ bảnhot GT Lap trinh co ban tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả c...
Lời mở đầu Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 1 LỜI MỞ ĐẦU Khi bắt đầu làm quen với ngôn ngữ lập trình – Cụ thể là ngôn ngữ C – Sinh Viên thường gặp khó khăn trong việc chuyển vấn đề lý thuyết sang cài đặt cụ thể trên máy. Sách “Giáo Trình Bài Tập Kỹ Thuật Lập Trình” nhằm cung cấp cho các Học Sinh - Sinh Viên Trường CĐ Công Nghệ Thông Tin Tp. Hồ Chí Minh hệ thống các bài tập, những kỹ năng thực hành cơ bản và nâng cao về ngôn ngữ lập trình C. Cuốn sách này được xem như tài liệu hướng dẫn từng bước cho Học Sinh - Sinh Viên của Trường trong việc học và áp dụng kiến thức lý thuyết trên lớp một cách thành thạo và sâu rộng. Giáo trình được chia thành 10 chương theo từng nội dung kiến thức, kèm theo Các đề thi mẫu và 1 phụ lục hướng dẫn viết chương trình, chuẩn đoán lỗi và sửa lỗi. Mỗi chương gồm 2 phần: Phần lý thuyết: được tóm tắt ngắn gọn với đầy đủ ví dụ minh hoạ kèm theo. Phần bài tập: với nhiều bài tập được chia làm hai mức độ cơ bản và luyện tập nâng cao, bài tập có đánh dấu * là bài tập khó dành cho sinh viên luyện tập thêm. Phần kết luận: Tóm tắt nội dung và các thao tác mà sinh viên cần nắm hay những lưu ý của chương đó. Trong quá trình biên soạn, chúng tôi đã cố gắng trích lọc những kiến thức rất cơ bản, những lỗi hay gặp đối với người mới lập trình. Bên cạnh đó chúng tôi cũng bổ sung thêm một số bài tập nâng cao để rèn luyện thêm kỹ năng lập trình. Tuy nhiên, chủ đích chính của giáo trình này là phục vụ cho một môn học nên chắc chắn không thể tránh khỏi những thiếu sót, vì thế, rất mong nhận được những góp ý quý báu của các thầy cô, các đồng nghiệp và các bạn Học Sinh – Sinh Viên để giáo trình này ngày càng hoàn thiện hơn. Chân thành cảm ơn. Lịch trình thực hành Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 2 LỊCH TRÌNH THỰC HÀNH ¡ Tổng thời gian: 90 tiết. STT NỘI DUNG SỐ TIẾT 1 Chương 1: Lưu đồ thuật toán 03 2 Chương 2: Cấu trúc điều khiển 06 3 Chương 3: Hàm con 12 4 Chương 4: Mảng một chiều 24 5 Chương 5: Chuỗi ký tự 06 6 Chương 6: Mảng hai chiều 12 7 Chương 7: Kiểu dữ liệu có cấu trúc 12 8 Chương 8: Tập tin 06 9 Chương 9: Đệ qui 06 10 Chương 10: Hướng dẫn lập trình bằng phương pháp Project 03 Lưu đồ thuật toán Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang 3 CHƯƠNG 1 LƯU ĐỒ THUẬT TOÁN (FLOWCHART) Các ký hiệu biểu diễn lưu đồ thuật toán, cách biểu diễn các cấu trúc điều khiển rẽ nhánh, cấu trúc lặp và các kỹ thuật liên quan đến lưu đồ thuật toán. I. TÓM TẮT LÝ THUYẾT I.1. Khái niệm Lưu đồ thuật toán là công cụ dùng để biểu diễn thuật toán, việc mô tả nhập (input), dữ liệu xuất (output) và luồng xữ lý thông qua các ký hiệu hình học. I.2. Phương pháp duyệt • Duyệt từ trên xuống. • Duyệt từ trái sang phải. I.3. Các ký hiệu STT KÝ HIỆU DIỄN GIẢI 1 Bắt đầu chương trình 2 Kết thúc chương trình 3 Luồng xử lý 4 Điều khiển lựa chọn 5 Nhập 6 Xuất 7 Xử lý, tính toán hoặc gán 8 Trả về giá trị (return) 9 Điểm nối liên kết tiếp theo (Sử dụng khi lưu đồ vượt quá trang) Lưu đồ thuật tốn Giáo trình Bài 1 TRƯỜNG CAO ĐẲNG NGHỀ ĐẮK LẮK KHOA ĐIỆN TỬ TIN HỌC -oOo - GIÁO TRÌNH LẬP TRÌNH CƠ BẢN NGHỀ: CƠNG NGHỆ THƠNG TIN TRÌNH ĐỘ: CAO ĐẲNG NGHỀ, TRUNG CẤP NGHỀ Người biên soạn: Chủ biên: Nguyễn Thị Thu Hà Đồng chủ biên: Lê Văn Tùng Lưu hành nội - 2015 Lời nói đầu Tin học ngành khoa học mũi nhọn phát triển nhanh chóng vài chục năm lại ngày mở rộng lĩnh vực nghiên cứu, ứng dụng mặt đời sống xã hội Ngơn ngữ lập trình loại cơng cụ giúp người thể vấn đề thực tế lên máy tính cách hữu hiệu Với phát triển tin học, ngơn ngữ lập trình dần tiến hoá để đáp ứng thách thức thực tế C ngơn ngữ lập trình vạn Ngoài việc C dùng để viết hệ điều hành UNIX, người ta nhanh chóng nhận sức mạnh C việc xử lý cho vấn đề đại tin học C không gắn với hệ điều hành hay máy nào, gọi " ngơn ngữ lập trình hệ thống" dùng cho việc viết hệ điều hành, tiện lợi cho việc viết chương trình xử lý số, xử lý văn sở liệu Vậy, mong góp ý bạn đọc để tài liệu ngày hồn thiện hơn, chúng tơi xin chân thành cảm ơn Mục lục chương 1: TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH Giới thiệu ngôn ngữ C: 1.1 Lịch sử phát triển: Các thao tác bản: 2.1 Khởi động 2.2 Màn hình sau khởi động thành công 2.3 Thoát khỏi Turbo C trở DOS (hay Windows) 2.4 Tạo mới, ghi chương trình C Sử dụng trợ giúp: Bài tập 11 Chương : CÁC THÀNH PHẦN CƠ BẢN 12 1.Từ khóa ký hiệu: 12 1.1 Từ khóa 12 1.2 Hệ thống ký hiệu C: 12 1.3.Tên 12 Các Kiểu liệu sơ cấp 13 biến, hằng, biểu thức: 14 3.1 Biến: 14 3.2 Hằng: 15 3.3 Biểu thức: 16 Cấu trúc chương trình 18 4.1.Tiền xử lý biên dịch 18 4.2 Cấu trúc chương trình C 19 4.3 Các tập tin thư viện thông dụng 20 Câu lệnh: 20 5.1 khái niệm: 20 5.2 Khối lệnh: 21 5.3 Nhập xuất liệu: 21 Cách chạy (thực thi) chương trình: 22 Chương : CÁC LỆNH CẤU TRÚC 23 Lệnh if 23 cấu trúc lựa chọn: 27 Cấu trúc lặp 28 3.1 Lệnh for 28 3.2 Cấu trúc vòng lặp while: 31 Các lệnh đặc biệt: 32 4.1 Lệnh break 32 4.2 Lệnh continue 32 Bài tập: 33 Chương 4: HÀM 33 Khái niệm hàm: 34 Xây dựng hàm 34 Sử dụng hàm 35 cách truyền tham số: 36 Hàm đệ quy: 36 Bài tập 38 Chương : MẢNG 38 Khái niệm Mảng: 39 Cách khai báo mảng 39 Truy xuất mảng: 39 3.1 Nhập liệu cho mảng 40 3.2 Đọc liệu từ mảng 40 3.3 Truy xuất mảng chiều: 41 Bài Tập: 42 Chương 6: CON TRỎ 44 Khái niệm Con trỏ địa chỉ: 44 Khai báo biến trỏ 44 Con trỏ mảng chiều: 45 Con trỏ hàm: 47 Bài tập 48 Chương 7: CHUỖI KÝ TỰ 49 Khái niệm chuỗi 49 Khai báo chuỗi: 49 Các thao tác với chuỗi: 50 Bài tập 54 *BÀI TẬP THỰC HÀNH TỔNG HỢP 55 CHƯƠNG TRÌNH MƠN HỌC LẬP TRÌNH CƠ BẢN Mã số mơn học : MH13 Thời gian môn học : 75h (Lý thuyết: 30h; Thực hành: 45h) I VỊ TRÍ, TÍNH CHẤT CỦA MƠN HỌC - Vị trí mơn học : Mơn học bố trí sau học sinh học xong môn học chung, trước môn học/ mô-đun đào tạo chun mơn nghề - Tính chất mơn học : Là môn học lý thuyết chuyên ngành bắt buộc II MỤC TIÊU MÔN HỌC Sau học xong mơn học học sinh có khả : - Hiểu cơng dụng ngơn ngữ lập trình C, hiểu cú pháp, cụng dụng câu lệnh dùng ngơn ngữ lập trình C - Phân tích chương trình: xác định nhiệm vụ chương trình (phải làm gì) - Vận dụng điều kiện, trợ giúp mơi trường ngơn ngữ lập trình C, chẳng hạn: thao tác biên tập chương trình, cơng cụ, điều khiển, thực đơn lệnh trợ giúp, gỡ rối, bẫy lỗi,v.v - Viết chương trình thực chương trình máy tính III NỘI DUNG MƠN HỌC: Nội dung tổng quát phân phối thời gian: Số TT I II III IV V VI VII Tên chương mục Tổng quan ngơn ngữ lập trình C Các thành phần Các lệnh cấu trúc Hàm Mảng Con trỏ Chuỗi ký tự Cộng Tổng số 10 18 12 12 12 75 Thời gian Lý Thực thuyết hành 5 11 8 30 45 Kiểm tra* * * * * chương 1: TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH Mục tiêu: - Hiểu lịch sử phát triển ngôn ngữ C; - Biết ứng dụng thực tế ngơn ngữ lập trình C; - Thao tác thành thạo môi trường phát triển C; - Sử dụng hệ thống trợ giúp phần mềm C; - Chủ động tìm hiểu tính ngơn ngữ C Giới thiệu ngôn ngữ C: 1.1 Lịch sử phát triển: C ngơn ngữ lập trình cấp cao, sử dụng phổ biến để lập trình hệ thống với Assembler phát triển ứng dụng Vào năm cuối thập kỷ 60 đầu thập kỷ 70 kỷ XX, Dennish Ritchie (làm việc phòng thí nghiệm Bell) phát triển ngơn ngữ lập trình C dựa ngơn ngữ BCPL (do Martin Richards đưa vào năm 1967) ngôn ngữ B (do Ken Thompson phát triển từ ngôn ngữ BCPL vào năm 1970 viết hệ điều hành UNIX máy PDP-7) ... Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007ADO.NETKhông bàn về lịch sử và sự xuất hiện của ADO.NET nhưng bạn phải chú ý : ADO.NET không phải là version mới của ADO (ActiveX Data Object) và ADO.NET cũng không phải là ‘ActiveX Data Object .NET’.ADO.NET và các lớp .NET cơ bảnNamespace Chú thíchSystem.Data Classes,interfaces,delegates,enumeration trong kiến trúc ADO.NET System.Data.Common Các lớp chia sẻ .NET Framework data providersSystem.Data.Design Tự tạo datasetSystem.Data.Odbc .NET Framework data provider cho ODBCSystem.Data.Oledb .NET Framework data provider cho OLE DBSystem.Data.Sql Cung cấp kết nối SQL ServerSystem.Data.OracleClient .NET Framework data provider cho OracleSystem.Data.SqlClient .NET Framework data provider cho SQL ServerSystem.Data.SqlServerCe .NET compact framework data provider cho SQL Server MobileSystem.Data.SqlTypes Các kiểu dữ liệu của SQL ServerMicrosoft.SqlServer.ServerThành phần cho SQL Server và CLRHiểu về kiến trúc ADO.NETPage 1 of 9 Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007ADO.NET có 2 thành phần chính : data providers và datasetsBạn có thể thấy mối quan hệ của chúng trên hình. Chú ý ‘DataView class’ không phải là một thành phần ‘data provider’. DataView được sử dụng phần lớn để gắn (bind) dữ liệu vào winform và webform.Page 2 of 9 Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007Hình trên là sự khác nhau khi sử dụng SQL Server và OLE DB data providers để truy cập (access) vào một cơ sở dữ liệu SQL Server.Hình dưới đây minh họa mối tương quan chung giữa Access và SQLServerPage 3 of 9 Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007Sử dụng SQL Server Data Provider.NET data provider cho SQL Server trong tên miền ‘System.Data.SqlClient’ giúp kết nối trực tiếp với server sử dụng network protocol của nó không phải đi qua các layers khác.Các hàm thường sử dụng :1. SqlCommand : thực thi SQL queries, câu lệnh hoặc lưu trữ thủ tục2. SqlConnection : tạo kết nối tới SQL Server3. SqlDataAdapter : cầu nối trung gian giữa dataset và data source4. SqlReader : cung cấp một data stream tới kết quả5. SqlError : lưu trữ thông tin về lỗi và cảnh cáo (warning)6. SqlException : các ngoại lệ trong trường hợp SQL Server lỗi và cảnh báo7. SqlParameter : tham sô biên command8. SqlTransaction : transaction của SQL ServerPage 4 of 9 Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007Thử tạo một Console Application sử dụng SQL Server Data ProviderMở Visual C# tạo một project mới chọn : Console Application -> OKMở file Program.cs và dùng code sau :[code]using System;using System.Data;using System.Data.SqlClient;namespace Chapter04{class SqlServerProvider{static void Main(string[] args){// Tạo một connection string connString = @"server = .\sqlexpress;integrated security = true;database = northwind";// Tạo querystring sql = @"SELECT*FROMemployees";// Khởi tạo kết nối và DataReaderSqlConnection conn = null;SqlDataReader reader = null;try{// Mở kết nốiconn = new SqlConnection(connString);conn.Open();//Thực thi querySqlCommand cmd = new 1Lập trình Java cơ bảnCao Đức Thông - Trần Minh Tuấncdthong@ifi.edu.vn, tmtuan@ifi.edu.vn 2Bài 8. Collections•Cấu trúc dữ liệu trong Java• Linked List• Stack và Queue•Tree•Collections Framework• Danh sách (List)•Tập hợp (Set)•Bảng ánh xạ (Map)•Bài tập 3Cấu trúc dữ liệu•Cấu trúc dữ liệu là cách tổ chức dữ liệu để giải quyết vấn đề.•Một số cấu trúc dữ liệu phổ biến:•Mảng (Array)• Danh sách liên kết (Linked List)• Ngăn xếp (Stack)•Hàng đợi (Queue)•Cây (Tree) 4Linked List•Linked list là cấu trúc gồm các node liên kết với nhau thông qua các mối liên kết. Node cuối linked list được đặt là null để đánh dấu kết thúc danh sách.•Linked list giúp tiết kiệm bộ nhớ so với mảng trong các bài toán xử lý danh sách.• Khi chèn/xoá một node trên linked list, không phải dãn/dồn các phần tử như trên mảng.•Việc truy nhập trên linked list luôn phải tuần tự. 5Linked List•Thể hiện Node thông qua lớp tự tham chiếu (self-referential class)class Node { private int data; private Node nextNode; // constructors and methods .}15 10 6Linked List•Một linked list được quản lý bởi tham chiếu tới node đầu và node cuối.H D QfirstNode lastNode . 7Cài đặt Linked List// Dinh nghia mot node trong linked list class ListNode { int data; ListNode nextNode; ListNode(int value) {this(value, null); } ListNode(int value, ListNode node) {data = value; nextNode = node; } int getData() { return data; } ListNode getNext() { return nextNode; }} 8Cài đặt Linked List// Dinh nghia lop LinkedListpublic class LinkedList { private ListNode firstNode; private ListNode lastNode; public LinkedList() { firstNode = lastNode = null; } public void insertAtFront(int insertItem) {if ( isEmpty() ) firstNode = lastNode = new ListNode( insertItem );else firstNode = new ListNode( insertItem, firstNode ); } 9Cài đặt Linked List public void insertAtBack( int insertItem ) { if ( isEmpty() ) firstNode = lastNode = new ListNode( insertItem ); else lastNode = lastNode.nextNode = new ListNode( insertItem ); } public int removeFromFront() { int removeItem = -1; if ( ! isEmpty() ) { removeItem = firstNode.data; if ( firstNode == lastNode ) firstNode = lastNode = null; else firstNode = firstNode.nextNode; } return removeItem; } 10Cài đặt Linked List public int removeFromBack() {int removeItem = -1;if ( ! isEmpty() ){ removeItem = lastNode.data; if ( firstNode == lastNode )firstNode = lastNode = null; else {ListNode current = firstNode;while ( current.nextNode != lastNode ) current = current.nextNode;lastNode = current;current.nextNode = null; }}return removeItem; } [...]... } private void postorder( TreeNode node ) { if ( node == null ) return; postorder( node.leftNode ); postorder( node.rightNode ); System.out.print( node.data + " " ); } } 1 Lập trình Java cơ bản Cao Đức Thơng - Trần Minh Tuấn cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn 19 Sử dụng Stack public class StackTest { public static void main(String[] args) { Stack stack = new Stack(); stack.push(5); stack.push(7); stack.push(4); stack.push(8); stack.print(); stack.pop(); stack.pop(); stack.print(); ... các phương thức kế thừa từ Collection. 33 Collections Framework • Các collection đầu tiên của Java: • Mảng • Vector: Mảng động • Hastable: Bảng băm • Collections Framework (từ VC&BB11Nội dungNMLT - Các khái niệm cơ bản về lập trìnhCác khái niệm cơ bản1Các bước xây dựng chương trình2Biểu diễn thuật toán3Cài đặt thuật toán bằng NNLT4 VC&BB22Các khái niệm cơ bảnLập trình máy tínhGọi tắt là lập trình (programming).Nghệ thuật cài đặt một hoặc nhiều thuật toán trừu tượng có liên quan với nhau bằng một ngôn ngữ lập trình để tạo ra một chương trình máy tính.Thuật toánLà tập hợp (dãy) hữu hạn các chỉ thị (hành động) được định nghĩa rõ ràng nhằm giải quyết một bài toán cụ thể nào đó.NMLT - Các khái niệm cơ bản về lập trình VC&BB33Các khái niệm cơ bảnVí dụThuật toán giải PT bậc nhất: ax + b = 0(a, b là các số thực).NMLT - Các khái niệm cơ bản về lập trình• Nếu a = 0• b = 0 thì phương trình có nghiệm bất kì.• b ≠ 0 thì phương trình vô nghiệm.• Nếu a ≠ 0• Phương trình có nghiệm duy nhất x = -b/aĐầu vào: a, b thuộc RĐầu ra: nghiệm phương trình ax + b = 0 VC&BB44Các tính chất của thuật toánBao gồm 5 tính chất sau:Tính chính xác: quá trình tính toán hay các thao tác máy tính thực hiện là chính xác.Tính rõ ràng: các câu lệnh minh bạch được sắp xếp theo thứ tự nhất định.Tính khách quan: được viết bởi nhiều người trên máy tính nhưng kết quả phải như nhau.Tính phổ dụng: có thể áp dụng cho một lớp các bài toán có đầu vào tương tự nhau.Tính kết thúc: hữu hạn các bước tính toán.NMLT - Các khái niệm cơ bản về lập trình VC&BB55Các bước xây dựng chương trìnhNMLT - Các khái niệm cơ bản về lập trìnhXác định vấn đề- bài toánLựa chọnphương pháp giảiCài đặtchương trìnhHiệu chỉnhchương trìnhThực hiệnchương trìnhLỗi cú phápLỗi ngữ nghĩaBiểu diễn bằng:• Ngôn ngữ tự nhiên• Lưu đồ - Sơ đồ khối• Mã giảXây dựngthuật toán/ thuật giải VC&BB66Sử dụng ngôn ngữ tự nhiênNMLT - Các khái niệm cơ bản về lập trình1. Nhập 2 số thực a và b.2. Nếu a = 0 thì2.1. Nếu b = 0 thì2.1.1. Phương trình vô số nghiệm2.1.2. Kết thúc thuật toán.2.2. Ngược lại2.2.1. Phương trình vô nghiệm.2.2.2. Kết thúc thuật toán.3. Ngược lại3.1. Phương trình có nghiệm.3.2. Giá trị của nghiệm đó là x = -b/a3.3. Kết thúc thuật toán.Đầu vào: a, b thuộc RĐầu ra: nghiệm phương trình ax + b = 0 VC&BB77Sử dụng lưu đồ - sơ đồ khốiNMLT - Các khái niệm cơ bản về lập trìnhKhối giới hạnChỉ thị bắt đầu và kết thúc.Khối vào raNhập/Xuất dữ liệu.Khối lựa chọnTùy điều kiện sẽ rẽ nhánh.Khối thao tácGhi thao tác cần thực hiện.Đường điChỉ hướng thao tác tiếp theo. VC&BB88Sử dụng lưu đồ - sơ đồ khốiNMLT - Các khái niệm cơ bản về lập trìnhBắt đầuĐọc a,ba = 0Tínhx = -b/aXuất“VN”b = 0Xuất“VSN”Kết thúcXuất xSĐĐ S VC&BB99Sử dụng mã giảVay mượn ngôn ngữ nào đó (ví dụ Pascal) để biểu diễn thuật toán.NMLT - Các khái niệm cơ bản về lập trìnhIf a = 0 ThenBeginIf b = 0 ThenXuất “Phương trình vô số nghiệm”ElseXuất “Phương trình vô nghiệm”EndElseXuất “Phương trình có nghiệm x = -b/a”Đầu vào: a, b thuộc RĐầu ra: nghiệm phương trình ax + b = 0 VC&BB1010Cài đặt thuật toán bằng C/C++NMLT - Các khái niệm cơ bản về lập trình#include ... phát triển ngày tăng cơng việc lập trình, C vượt qua khn khổ phòng thí nghiệm Bell nhanh chóng hội nhập vào giới lập trình để cơng ty lập trình sử dụng cách rộng rãi Sau đó, cơng ty sản xuất phần... Kernighan cho xuất “Ngơn ngữ lập trình C” phổ biến rộng rãi đến Lúc ban đầu, C thiết kế nhằm lập trình mơi trường hệ điều hành Unix nhằm mục đích hỗ trợ cho cơng việc lập trình phức tạp Nhưng sau,... trợ cho việc lập trình ngơn ngữ C chuẩn ANSI C khai sinh từ Ngơn ngữ lập trình C ngơn ngữ lập trình hệ thống mạnh “mềm dẻo”, có thư viện gồm nhiều hàm (function) tạo sẵn Người lập trình tận dụng