Tin học cơ sở 2

     

Bài giảng "Tin học cơ sở 2" giới thiệu tới người đọc các nội dung: Kỹ thuật lập trình, các cấu trúc lệnh điều khiển, hàm và phạm vi hoạt động của biến, cấu trúc dữ liệu kiểu mảng.

Bạn đang xem: Tin học cơ sở 2

Mời các bạn cùng tham khảo nội dung chi tiết.


*

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG -------------------- KHOA CÔNG NGHỆ THÔNG TIN 1 BÀI GIẢNG IT TIN HỌC CƠ SỞ 2PT Chủ biên: PHAN THỊ HÀ Hà Nội 2013Phan Thị Hà-KHoa cntt1-Học viện CNBCVT NGÔN NGỮ LẬP TRÌNH CGIỚI THIỆU Nội dung Chƣơng này cung cấp cho sinh viên các kiến thức sau: - Một số kiến thức cơ sở về ngôn ngữ lập trình C - Câu lệnh, các cấu trúc lệnh điều khiển - Hàm và phạm vi hoạt động của biến IT - Kiểu dữ liệu có cấu trúc: Kiểu mảng, kiểu xâu kí tự Mục đích, yêu cầu: Nhằm cung cấp cho sinh viên các kiến thức tổng quan và cơ bản về ngôn ngữ lập trìnhC. Qua đó học viên có thể nắm đƣợc các khái niệm cơ bản về lập trình và thiết lập đƣợc PTmột số chƣơng trình đơn giản phục vụ cho khoa học kĩ thuật và đặc biệt là làm công cụ đểphục vụ cho các môn học về tin học và viễn thông mà các em sắp học.1. GIỚI THIỆU CHUNG1.1. Ngôn ngữ lập trình Trong phần “Tin học cơ sở 1” chúng ta đã tìm hiểu Winword và Excel, là các phầnmềm ứng dụng trong công việc soạn thảo văn bản và làm các bảng tính toán đƣợc. Đặcđiểm của các phần mềm ứng dụng là luôn định rõ phạm vi ứng dụng và cung cấp càngnhiều càng tốt các công cụ để hoàn thành chức năng đó. Tuy nhiên ngƣời sử dụng cũng hầunhƣ bị bó buộc trong phạm vi quy định của chƣơng trình. Chẳng hạn ta khó có thể dùngExcel để giải một bài toán gồm nhiều bƣớc tính toán nhƣ tính nghiệm gần đúng mộtphƣơng trình vi phân hay giải một hệ phƣơng trình tuyến tính. Mặc dầu các phần mềm ứngdụng ngày càng nhiều và thuộc đủ các lĩnh vực nhƣ xây dựng, thiết kế, hội họa, âmnhạc...nhƣng không thể bao trùm hết các vấn đề nẩy sinh trong thực tế vô cùng phong phú.Rõ ràng không chỉ những chuyên gia tin học mà ngay cả những ngƣời sử dụng, nhất là cáccán bộ kỹ thuật, rất cần đến những phần mềm uyển chuyển và mềm dẻo hơn, có khả năngthực hiện đƣợc nhiều hơn các chỉ thị của ngƣời sử dụng để giúp họ giải quyết những côngviệc đa dạng bằng máy tính. Phần mềm có tính chất nhƣ thế đƣợc gọi là ngôn ngữ lập trình. 189Phan Thị Hà-KHoa cntt1-Học viện CNBCVTChính xác hơn ngôn ngữ lập trình là một ngôn ngữ nhân tạo bao gồm một tập các từ vựng(mà ta sẽ gọi là từ khóa để phân biệt với ngôn ngữ thông thƣờng) và một tập các quy tắc(gọi là Syntax - cú pháp) mà ta có thể sử dụng để biên soạn các lệnh cho máy tính thựchiện. Nhƣ ta đã biết, các ô nhớ của máy tính chỉ có thể biểu diễn các số 0 và 1. Vì vậy ngônngữ mà máy có thể hiểu trực tiếp là ngôn ngữ trong đó các lệnh là các dãy số nhị phân vàdo đó đƣợc gọi là ngôn ngữ máy (machine language) . Mọi ngôn ngữ khác đều phải thôngdịch hoặc biên dịch sang ngôn ngữ máy (Interpreter - thông dịch và cho chạy từng lệnh.Compiler - biên dịch thành 1 chƣơng trình ngôn ngữ máy hoàn chỉnh, do vậy chạy nhanhhơn thông dịch). Có nhiều loại ngôn ngữ lập trình, và hầu hết các nhà khoa học về máy tính đều cho rằngkhông có một ngôn ngữ độc nhất nào có đủ khả năng phục vụ cho các yêu cầu của tất cảcác lập trình viên. Theo truyền thống, các ngôn ngữ lập trình đƣợc phân làm 2 loại: cácngôn ngữ bậc thấp và ngôn ngữ bậc cao. Ngôn ngữ lập trình bậc thấp (low-level programming language): Ngôn ngữ máy, hợp ngữ (asembler: chƣơng trình dịch hợp ngữ, assembly language: ITngôn ngữ hợp ngữ). Hợp ngữ là ngôn ngữ một bậc từ ngôn ngữ máy. Nó chỉ khác với ngônngữ máy trong việc sử dụng các mã biểu thị các chức năng chính mà máy thực hiện. Lập trình bằng hợp ngữ rất phiền toái: có đến vài tá dòng mã cần thiết chỉ để thực hiệnphép cộng 2 con số. Các chƣơng trình hợp ngữ rất khó viết; chúng không có cấu trúc hoặcmodun hóa rõ ràng. Chƣơng trình hợp ngữ cũng không dễ chuyển từ loại máy tính này PTsang loại máy tính khác. Các chƣơng trình này đƣợc viết theo các tập lệnh đặc thù của loạibộ vi xử lý nhất định. Lập trình bằng hợp ngữ thì mã gọn và chạy nhanh. Do đó hầu hết cácchƣơng trình điều hành hệ thống đều đƣợc viết bằng hợp ngữ. Tuy nhiên do sự phức tạpcủa công việc lập trình nên các hãng sản xuất phần mềm chuyên dụng thích viết chƣơngtrình bằng ngôn ngữ C (do Bell Laboratories của hãng AT&T xây dựng) là loại ngôn ngữkết hợp đƣợc cấu trúc của ngôn ngữ bậc cao hiện đại với tốc độ và tính hiệu quả của hợpngữ bằng cách cho phép nhúng các lệnh hợp ngữ vào chƣơng trình. Ngôn ngữ lập trình bậc cao: Các ngôn ngữ lập trình bậc cao nhƣ Basic, Pascal, C, C++... cho phép các lập trình viêncó thể diễn đạt chƣơng trình bằng các từ khóa và các câu lệnh gần giống với ngôn ngữ tựnhiên. Các ngôn ngữ này dƣợc gọi là “bậc cao” vì chúng giải phóng các lập trình viên khỏinhững quan tâm về từng lệnh sẽ đƣợc máy tính tiến hành nhƣ thế nào, bộ phận thông dịchhoặc biên dịch của chƣơng trình sẽ giải quyết các chi tiết này khi mã nguồn đƣợc biến đổithành ngôn ngữ máy. Một câu lệnh trong ngôn ngữ bậc cao tƣơng ứng với một số lệnhngôn ngữ máy, cho nên bạn có thể thảo chƣơng theo ngôn ngữ bậc cao nhanh hơn so vớibậc thấp. Tuy nhiên bạn cũng phải trả giá cho việc này. Chƣơng trình ngôn ngữ máy đƣợcdịch ra từ mã nguồn đƣợc viết bằng ngôn ngữ bậc cao chứa rất nhiều chi tiết thừa, do đótốc độ chạy sẽ chậm hơn nhiều so với chƣơng trình viết bằng hợp ngữ. Thông thƣờng một 190Phan Thị Hà-KHoa cntt1-Học viện CNBCVTtrình biên dịch đặc trƣng thƣờng sinh ra số lệnh mã máy gấp 2 lần hay nhiều hơn số lệnhcần thiết nếu viết bằng mã máy. Một cách phân loại khác của các ngôn ngữ lập trình: Ngôn ngữ thủ tục (Procedural Language) và ngôn ngữ khai báo (Declarative Language) Ngôn ngữ thủ tục: Lập trình viên phải xác định một thủ tục mà máy tính sẽ tuân theo đểhoàn thành một công việc định trƣớc. Thí dụ: Basic, C, Fortran, ...

Xem thêm: Top 6 Phần Mềm Mầm Non Miễn Phí, Phần Mềm Mầm Non Miễn Phí

Ngôn ngữ khai báo: Ngôn ngữ sẽ định nghĩa một loạt các yếu tố và các quan hệ, đồngthời cho phép bạn có thể tiến hành xếp hàng đối với những kết quả xác định. Thí dụ:Prolog, SQL (Structured Query Language) Điều then chốt trong việc lập trình chuyên dụng là môdun hóa ngôn ngữ - đó là sự pháttriển sao cho nhiệm vụ lập trình có thể phân phối đƣợc cho các thành viên của một nhómlập trình, và kết quả đạt đƣợc là các bộ phận khác nhau sẽ hoạt động phù hợp với nhau khinhiệm vụ của từng ngƣời hoàn thành. Ngôn ngữ lập trình môdun, nhƣ Module-2 hoặc ngônngữ hƣớng đối tƣợng nhƣ C++, sẽ cho phép từng lập trình viên có thể tập trung vào việclập mã, biên dịch và gỡ rối các module chƣơng trình riêng biệt, đồng thời có thể cho chạy(kiểm tra thử) riêng từng module của mình. Khi từng module riêng đã chạy tốt chúng sẽ1.2. Thuật toán (Algorithm) ITđƣợc liên kết với nhau mà không gây trục trặc nào. Thuật ngữ Algorithm đƣợc dịch ra tiếng Việt là thuật toán, thuật giải hoặc giải thuật. Ởđây chúng tôi dùng từ thuật toán là cách gọi quen thuộc với nhiều ngƣời. PT Thuật toán là một dãy hữu hạn các bƣớc, mỗi bƣớc mô tả chính xác các phép toán hoặchành động cần thực hiện, để giải quyết một vấn đề. Để hiểu đầy đủ ý nghĩa của khái niệm thuật toán, chúng ta nêu ra 6 đặc trƣng sau đâycủa thuật toán: Input Mỗi thuật toán thƣờng có một số dữ liệu vào. Ouput Mỗi thuật toán thƣờng có một số dữ liệu ra. Tính xác định (Definiteness) Mỗi bƣớc đƣợc mô tả chính xác, chỉ có một cách hiểu duynhất và đủ đơn giản để có thể thực hiện đƣợc. Tính dừng (Finiteness) Thuật toán phải dừng sau một số hữu hạn bƣớc thực hiện Tính hiệu quả (Effectiveness) Các phép toán trong các bƣớc phải đủ đơn giản để có thểthực hiện đƣợc. Tính tổng quát (Generalness) Thuật toán phải có tính tổng quát, có thể áp dụng cho mộtlớp đối tƣợng. Ví dụ: 191Phan Thị Hà-KHoa cntt1-Học viện CNBCVT Thuật toán Euclid: Tìm ƣớc số chung lớn nhất của hai số tự nhiên m,n. Input: m,n nguyên dƣơng Output: g là ƣớc số chung lớn nhất của m và n Phƣơng pháp: 1. r= m mod n 2. Nếu r=0 thì g:=n Ngƣợc lại (r>0) m:=n; n:=r và quay lại bƣớc 1.1.3. Sự ra đơi và phát triển của ngôn ngữ C Năm 1970 Ken Thompson sáng tạo ra ngôn ngữ B dùng trong môi trƣờng hệ điều hànhUNIX trên máy điện toán DEC PD-7. B cũng là chữ tắt của BCPL (Basic CombinedProgamming Language) do Martin Richards viết. Năm 1972 Dennis Ritchie của hãng BellLaboratories (và Ken Thompson) sáng tạo nên ngôn ngữ C nhằm tăng hiệu quả cho ngônngữ B. Lúc đầu ngôn ngữ C không đƣợc mọi ngƣời ƣa dùng. Nhƣng sau khi D.Ritchie choxuất bản cuốn "The C Programming Language" (“Ngôn ngữ lập trình C”) thì ngôn ngữ Cđƣợc chú ý và đƣợc sử dụng rộng rãi. Ngƣời ta đã dùng C để viết hệ điều hành đa nhiệm ITUNIX, O/S 2 và ngôn ngữ Dbase. C đã đƣợc cải tiến qua nhiều phiên bản: trình biên dịchTurbo C từ phiên bản 1 đến phiên bản 5, Microsoft C từ phiên bản 1 đến phiên bản 6. Hiệnnay, C lại đƣợc phát triển để thành C++ với 3 trình biên dịch: Borland C++, Visual C++ vàTurbo C++. PT Mặc dù hiện nay có khá nhiều ngôn ngữ lập trình mới, nhƣng C vẫn là một ngôn ngữlập trình đƣợc ƣa chuộng. C đƣợc ứng dụng để viết các phần mềm trong nhiều lĩnh vực,đặc biệt là trong khoa học kỹ thuật.2. MỘT SỐ KIẾN THỨC CƠ SỞ2.1. Bộ kí tự, từ khóa,tên2.1.1 Bộ kí tự trong C Mọi ngôn ngữ đều đƣợc xây dựng trên một bộ kí tự (các chữ, các kí hiệu). Đối với ngônngữ C sử dụng bộ kí tự sau: Tập các chữ cái in hoa: A, B, C, D, . ., Z Tập các chữ cái in thƣờng: a, b, c, d, . . , z Tập các chữ số: 0, 1, 2, 3, . . , 9 Các dấu chấm câu: , . ; : / ? < > { } !