CPU - central processing unit
Là nơi thi hành các tính toán, xử lý
Bộ nhớ (Memory)
Lưu trữ dữ liệu đang được xử lý bởi CPU
Thiết bị nhập (Input devices)
Cho phép người sử dụng cung cấp thông tin cho máy tính
Thiết bị xuất (Output devices)
Cho phép người dùng nhận thông tin từ máy tính
160 trang |
Chia sẻ: Mr Hưng | Lượt xem: 1074 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Cơ bản về lập trình - Máy tính, phần mềm và thiết kế chương trình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Cơ bản về lập trìnhMáy tính, phần mềm và thiết kế chương trìnhJPC and JWD © 2002 McGraw-Hill, Inc.Tổ chức máy tínhCPU - central processing unitLà nơi thi hành các tính toán, xử lýBộ nhớ (Memory)Lưu trữ dữ liệu đang được xử lý bởi CPUThiết bị nhập (Input devices)Cho phép người sử dụng cung cấp thông tin cho máy tínhThiết bị xuất (Output devices)Cho phép người dùng nhận thông tin từ máy tínhTổ chức máy tínhCPUBộ não của máy tínhThi hành các thao tác số học bởi Arithmetic/Logical Unit hoặc ALUĐơn vị điều khiển định vị và thi hành các chỉ thị lệnhCác thao tác số học được thi hành sử dụng hệ số nhị phânĐơn vị điều khiểnChu kỳ fetch/execute thi hành một chỉ thịThực hiện hành động được chỉ ra bởi chỉ thị được gọi là thi hành chỉ thịThe program counter (PC) (bộ đếm chương trình) lưu trữ địa chỉ của chỉ thị kế tiếpBộ nhớCòn gọi là bộ nhớ chính (main memory)Nơi chứa dữ liệu để chạy chương trìnhDữ liệu chứa trong bộ nhớ chính có thể chia làm 2 phần:Dữ liệu thật sự: do người dùng nhập vào, do việc tính toánĐoạn mã của chương trìnhBộ nhớ = tập hợp các ô nhớ, mỗi ô nhớ 1 byte. Mỗi ô nhớ có một vị trí để định vị hay còn gọi là địa chỉ.0123...100101......Là các thiết bị bổ trợ cho phép máy tính thực hiện một số tác vụ cụ thể nào đó:Nhận thông tin để xử lýTrả về kết quả của việc xử lýLưu thông tinCác thiết bị nhập xuất thông dụngSpeakers Mouse ScannerPrinter Joystick CD-ROMKeyboard Microphone DVDMột vài thiết bị vừa đóng vai trò nhập vừa đóng vai trò xuấtFloppy drive Hard drive Đĩa từThiết bị nhập xuấtMàn hìnhThiết bị hiển thị hoạt động như ti viCRT (cathode ray tube)Điều khiển bởi một thiết bị xuất gọi là card đồ họa (graphics card)Vùng hiển thị đượcĐộ phân giảiMàu sắcPhần mềm ứng dụngNhững chương trình được thiết kế để thi hành một số tác vụ xác định nào đó và trong suốt với người dùngPhần mềm hệ thốngNhững chương trình hỗ trợ việc thi hành và phát triển các chương trình khácHai loại chínhHệ điều hành (Operating systems)Hệ thống chuyển (Translation systems)Phần mềmPhần mềm ứng dụng giúp máy tính trở nên không thể thiếu và phổ biếnMột số phần mềm ứng dụng thông dụngXử lý văn bảnSpreadsheetsTrình chiếuVẽ hìnhHọc cách phát triển phần mềm là mục tiêu của môn họcPhần mềm ứng dụngVí dụWindows®, UNIX®, Mac OS X®Điều khiển và quản lý các tài nguyênNhững dịch vụ quan trọng mà hệ điều hành cung cấpHệ thống fileDirectories, folders, filesCác lệnh thao tác trên hệ thống fileSort, delete, copyKhả năng thi hành thao tác nhập xuất trên nhiều loại thiết bị khác nhauQuản lý việc chạy các chương trìnhHệ điều hànhHệ thống chuyểnMột tập các chương trình để phát triển các chương trình khácHạt nhân là một thành phần gọi là trình chuyển đổi (translator)Một số loại trình chuyển đổiTrình biên dịchChuyển từ một ngôn ngữ này sang ngôn ngữ khác (C/C++ máy)Trình liên kếtKết hợp các tài nguyên lại với nhauVí dụ: Visual C++ 6.0, DevC++, Borland C++Thi hành việc biên dịch, liên kết, và một số thao tác khácCác họat động lập trìnhViết mã chương trìnhBiên dịchLiên kết với các file đã được biên dịch khácObject filesLibrary modulesTải vào bộ nhớ và thi hànhQuan sát sự họat động của chương trìnhCác họat động lập trìnhIDEsIntegrated Development Environments = IDEsHỗ trợ tất cả các họat động trong lập trìnhMS Visual C++, Borland C++, DevC++Cung cấp các chức năng hỗ trợ mọi hoạt độngEditorCompilerLinkerLoaderDebuggerViewerKỹ nghệ phần mềmKỹ nghệ phần mềmLĩnh vực của khoa học máy tính liên quan đến xây dựng các hệ thống phần mềm lớnThách thứcPhần cứng phát triển rất nhanh trong khi phần mềm phát triển không tương xứngĐộ phức tạp của hệ thốngĐộ phức tạp của hệ thống có khuynh hướng tăng lên nếu hệ thống trở nên thân thiện với người dùng hơn (dễ sử dụng hơn)Sự tin cậy (Reliability)Tính dễ hiểuSự chỉnh sửa phát triển thêm trong tương lai sẽ rất khó khăn nếu phần mềm khó hiểuHiệu quả về mặt chi phíTính thích nghiHệ thống có tính thích nghi là hệ thống dễ dàng sửa chữa và mở rộngTính tái sử dụngCải thiện độ tin cậy, tính dễ bảo trì và tăng lợi nhuậnMục đích của kỹ nghệ phần mềmSự trừu tượng (Abstraction)Lấy ra những thuộc tính cần thiết và bỏ qua những thuộc tính không cần thiếtSự đóng gói (Encapsulation)Che giấu và bảo vệ những thông tin nhạy cảm thông quan một giao diệnTính module hóa (modularity)Chia một đối tuợng thành các module nhỏ hơn để có dễ hiểu và thao tác hơnTính hệ thống cấp bậc (hierarchy)Sắp xếp các đối tượng dựa trên quan hệ giữa chúngCác nguyên lý kỹ nghệ phần mềmThiết kế và lập trình hướng đối tượngPhương pháp thiết kế và lập trình hướng đối tượng hỗ trợ một kỹ nghệ phần mềm tốt.Xúc tiến suy nghĩ theo cách mà chúng ta vẫn thường nghĩ và tương tác với thế giới thựcVí dụ: xem ti viRemote là một đối tượng vật lý với thuộc tínhTrọng lượng, kích cỡCó thể gởi thông điệp đến cho ti viTi vi cũng là một đối tượng với nhiều thuộc tínhĐối tượngMột đối tượng hầu như là mọi thứ với các đặc trưngCó tênCó các thuộc tínhCó khả năng phản ứng lại các thông điệp nhận đượcMột số thông điệp cơ bảnThi hành một hành độngYêu cầu thay đổi một thuộc tínhLập trình C++ căn bảnJPC and JWD © 2002 McGraw-Hill, Inc.// Program: Display greetings// Author(s): Ima Programmer// Date: 1/24/2001#include int main() { std::cout int main() { cout #include using namespace std;int main() { cout using namespace std;int main() { // Extract length and width cout > Length >> Width; // Compute and insert the area float Area = Length * Width; cout , =, '3' true'6' >= i);bool r = (i >= k);bool s = (k value2Hành động 3: Xuất hai số ra. cout > Value1 >> Value2;if (Value1 > Value2) { int RememberValue1 = Value1; Value1 = Value2; Value2 = RememberValue1;}cout > Value1 >> Value2;int Max;if (Value1 0 ) {cout > Left >> Operator >> Right;cout >diem;TongDiem += diem;cin >>diem;TongDiem += diem;cin >>diem;TongDiem += diem;cin >>diem;TongDiem += diem;cin >>diem;TongDiem += diem;Lặp lại 5 lầnVí dụ cấu trúc lặpTính tổng điểm cho 50 sinh viênĐoạn mã lặp lại 50 lần (!!!)Tính tổng điểm cho số sinh viên không biết trước ???Không thể vì kích thước đoạn mã chương trình phải cố địnhCấu trúc lặp trong C++Công dụng:Cho phép lặp lại một nhóm lệnh nhiều lần trong một điều kiện nhất định.Phân loạiCâu lệnh whileCâu lệnh forCâu lệnh do-while Lưu ý: phân chia như sau đã lỗi thờiLặp có số lần lặp biết trướcLặp có số lần lặp không biết trướcCú pháp lệnh whilewhile (Biểu thức lôgic) Hành động Biểu thức lôgic quyết định hành động có được tiếp tục thi hành hay không? Còn gọi là điều kiện lặp.Hành động được thi hành lặp đi lặp lại cho đến khi biểu thức lôgic mang giá trị false.Nếu hành động lặp có nhiều hơn 1 câu lệnh thì phải đặt trong khối {}Hành động lặp không ảnh hưởng đến điều kiện lặpHành động lặp ảnh hưởng đến điều kiện lặpSơ đồ khối lệnh whileVí dụ tính điểm trung bìnhGọi SoHocSinh là số học sinh cần tính điểm trung bình.Gọi Tong là tổng điểm hiện tại. Ban đầu tổng điểm = 0.Gọi diem là điểm môn Toán của học sinh (không cần lưu)Gọi Dem là số học sinh đã nhập điểm. Ban đầu số hs đã nhập = 0.Hành động:Nhập điểm môn Toán của học sinhCộng điểm mới vào tổng điểm hiện tạiTăng số học sinh đã nhập điểmĐiều kiện lặpSố học sinh đã nhập điểm nhỏ số học sinh cần tính điểm trung bình.Hai hành động tính điểm trung bình và xuất điểm trung bình tầm thường không xétTính điểm trung bình của lớpint SoHocSinh = 4;int Dem = 0;double Tong = 0; while (Dem > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem; Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem ) { Tong += diem; ++Dem; }double DiemTrungBinh = Tong / Dem ;cout > diem ) { Tong += diem; ++Dem; }if ( Dem > 0 ) { double DiemTrungBinh = Tong / Dem ; cout > Reply) Reply = tolower(Reply); else Reply = ‘k';} while ((Reply != ‘c') && (Reply != ‘k'));Lệnh forCú pháp for (khởi tạo ; điều kiện; lệnh thực hiện sau) Hành độngVí dụ for (int i = 0; i > c) { ++NumberOfNonBlanks; if ((c >= 'A') && (c <= 'Z')) { ++NumberOfUpperCase; }}cout << “Số kí tự: " << NumberOfNonBlanks << endl << “Số kí tự hoa: " << NumberOfUpperCase << endl;Chỉ đọc các kí tự khác rỗngĐếm tất cả các kí tựchar c;int NumberOfCharacters = 0;int NumberOfLines = 0;while ( cin.get(c) ) {++NumberOfCharacters;if (c == '\n') { ++NumberOfLines}}cout << “Số kí tự: " << NumberOfCharacters << endl << “Số dòng: " << NumberOfLines << endl;Extracts all characters
Các file đính kèm theo tài liệu này:
- c_can_ban_c1_c2_c3_c4_c5_10_2006__8641.ppt