1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình cơ bản: Bài 1 - TS. Ngô Quốc Việt

49 9 0

Đ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 49
Dung lượng 2,29 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng bài 1 giúp người học tìm hiểu về các khái niệm lập trình. Các nội dung cụ thể trong chương này gồm có: Giới thiệu về lập trình, ngôn ngữ lập trình, thuật giải, chương trình; chương trình đầu tiên bằng C++; một số khái niệm và thuật ngữ; khái niệm mã giả và lưu đồ;...và một số nội dung khác

Trang 1

TÌM HIỂU KHÁI NIỆM LẬP TRÌNH

NGÔ QUỐC VIỆT-LÊ ĐỨC LONG

2012

Trang 2

1. Giới thiệu về lập trình, ngôn ngữ lập trình,

thuật giải, chương trình

2. Chương trình đầu tiên bằng C++

3. Một số khái niệm và thuật ngữ

4. Khái niệm mã giả và lưu đồ

5. Quy trình xây dựng một chương trình đơn

giản

6. Khảo sát các môi trường lập trình

7. Bài tập

2

Trang 3

 Lập trình là gì ?

 Thể hiện một quy trình xử lý vấn đề thành một

thực thể hiểu được bởi máy tính

Làm cho máy tính và các thiết bị trở nên hữu

dụng và thông minh hơn

 Ngôn ngữ lập trình: phương tiện/công cụ để lập trình (Pascal, C/C++, C#, JAVA, …)

 Thuật giải: cách thức giải quyết một vấn đề

 Chương trình: tập hợp nhiều tác vụ nhằm thực thi yêu cầu cụ thể trong thực tế

3

Trang 4

Bao gồm nhiều thiết bị phần cứng (hardware

 Công dụng: hệ thống, ứng dụng, cơ sở dữ liệu

 Môi trường hoạt động: OS, Network, WEB, Server,

4

Trang 5

1 Viết chương trình: phải dùng ngôn ngữ lập

trình, trong một môi trường lập trình (IDE) để viết ra mã nguồn (source code)

2 Biên dịch chương trình: dùng một môi trường

biên dịch (compiler) để kiểm tra đúng cú pháp

3 Chạy chương trình: xem chương trình có đúng

ý hay không?

4 Debug (tìm lỗi) chương trình: tìm lỗi nếu có

(hay luôn luôn có)

5 Lặp lại bốn bước trên cho đến khi OK

5

Trang 7

 Mã nguồn chương trình theo ngôn ngữ lập trình

 Chương trình, thành phần của chương trình

 Ứng dụng, phần mềm (liên kết nhiều chương trình/ứng dụng)

 Giải pháp phần mềm (liên kết nhiều phần mềm)

 Giải pháp CNTT (liên kết giải pháp phần mềm

và các trang thiết bị khác)

7

Trang 8

 Programmer hay coder là người viết phần mềm

 Thuật ngữ computer programmer là chuyên viên lập trình máy tính hoặc là người viết code phần mềm ( en.wikipedia.org/wiki/Programmer

Trước đây, programmer có:

Trang 10

 Theo nền tảng

 Hệ điều hành: Windows, Linux, MacOS, v.v

 Môi trường: desktop, mạng, web, di động

 Theo lĩnh vực

 Kỹ thuật: mô phỏng, tối ưu, v.v

 Kinh tế: tài chính, kế toán, v.v

 Quản lý: nhân sự, kho, doanh nghiệp, v.v

 Mạng xã hội

10

Trang 11

 Ngôn ngữ lập trình

 Phương tiện để viết chương trình cho máy tính

 Rất nhiều ngôn ngữ lập trình khác nhau Mỗi nn có

quy định về cú pháp (syntax) & ngữ nghĩa (semantic)

 Máy tính có thể hiểu được

Trang 12

 Sử dụng các từ khóa tiếng Anh cho các lệnh hay nhóm lệnh của mã máy

 Được dịch sang mã máy khi thực hiện

 Chuyển đỗi nhanh chóng

 Dễ đọc và dễ hiểu hơn

 Vẫn tương đối khó sử dụng do

 Các lệnh còn đơn giản nên phải dùng nhiều lệnh

 Chưa có những cấu trúc điều khiển thuận tiện

 Khả năng tìm và sửa lỗi cũng chưa thuận tiện

 Nền tảng xây dựng các ngôn ngữ cấp cao

12

Trang 13

 Một câu lệnh diễn tả nhiều động thái

 Có cấu trúc giống ngôn ngữ tự nhiên (tiếng Anh)

 Được dịch sang assembly hay mã máy bằng các chương trình dịch trước khi thực thi

 Được phân loại thành dạng:

 Không cấu trúc (sử dụng các lệnh goto)

 Có cấu trúc – Structured

 Lập trình hướng đối tượng – Object Oriented

13

Trang 14

 Prolog, Delphi, ASP, PHP

 C++.NET, C#, VB.NET, Ruby, Python

14

Trang 15

 Theo vấn đề cần giải quyết (dựa trên kinh nghiệm)

 Theo ưu thế của ngôn ngữ

 C/C++: kỹ thuật Phổ biến

 C#, Basic: dễ dùng cho vấn đề quản lý

 Theo tính tiện dụng của ngôn ngữ (dễ nhớ, môi trường làm việc dễ, có nhiều người cùng làm, có nhiều thư viện hỗ trợ, v.v)

 Theo yêu cầu của khách hàng

 Theo thói quen của programmer

15

Trang 16

Desktop Web Di động

 NET vẫn là nền tảng được sử dụng nhiều nhất cho các ứng dụng desktop và web

 PHP được ưa chuộng ở Châu Âu

 JAVA là nền tảng được sử dụng nhiều nhất cho các ứng dụng di động

Trang 17

 Không học chính thức ngôn ngữ lập trìnhTự học

 Học tư duy lập trình

 Học sử dụng các công cụ và phương tiện lập trình

17

Trang 18

 Microsoft

 Visual Studio 6.0 (C, C++, Basic), DevC (C, C++)

 Visual Studio 2008 (C++, Basic, C#)

Trang 19

 Dịch và sửa lỗi chương trình (compile & debug)

 Chạy thử và sửa lỗi (run & debug)

19

Trang 20

 Hiển thị thông b|o “Hello world”

cout << "Hello World!" << endl;

}

Ngôn ngữ C

#include <stdio.h>

main() {

printf(“Hello world!”);

}

Trang 22

 Minh hoạ viết chương trình đầu tiên trên Visual C 6.0 (C/C++) helloC

 Minh hoạ viết chương trình đầu tiên trên Eclipse (JAVA) helloJAVA

 Minh hoạ viết chương trình đầu tiên trên Visual Studio 2008 (C#) helloDOTNET

22

Trang 23

Thuật toán l{ một tập hợp c|c hướng dẫn nhằm thực hiện một công việc n{o đó Đối việc giải quyết vấn đề – b{i to|n , thuật to|n được hiểu l{ một tập hữu hạn c|c hướng dẫn rõ r{ng để người giải b{i to|n có thể theo đó m{ giải quyết được b{i to|n Như vậy, thuật to|n l{ một phương ph|p thể hiện lời giải của vấn đề, b{i to|n

 Việc nghiên cứu c|c thuật to|n có vai trò rất quan trọng trong khoa học m|y tính vì m|y tính chỉ giải quyết vấn đề được khi đã có hướng dẫn giải rõ r{ng và đúng

Trong khoa học máy tính, thuật to|n được định nghĩa l{

một dãy hữu hạn c|c bước không mập mờ và có thể thực thi được, qu| trình h{nh động theo c|c bước n{y phải dừng và cho được kết quả như mong muốn

THUẬT TOÁN LÀ GÌ ?

23

Trang 24

Nhắc lại 1 ít về lịch sử …

Từ thuật toán (Algorithm) xuất phát từ tên một nhà toán học

người Trung Á là Muhammad ibn Musa al-Khwarizmi, thường

gọi là al’Khwarizmi Ông là tác giả một cuốn sách về số học,

trong đó ông đã dùng phương pháp mô tả rất rõ ràng, mạch lạc

cách giải những bài toán Sau này, phương pháp mô tả cách giải

toán của ông đã được xem là một chuẩn mực và được nhiều nhà

toán học khác tuân theo Từ algorithm ra đời dựa theo cách

phiên âm tên của ông

Muḥammad ibn Mūsā Khwārizmī (Arabic: ىسوم نب محمد يمزراوخلا ) was a Persian

al-mathematician, astronomer, astrologer and geographer He was born around 780, in either

Khwarizm or Baghdad, and died around 850

He was the author of al-Kitāb al-mukhtaṣar fī ḥisāb al-jabr wa-l-muqābala,

the first book on the systematic solution of linear and quadratic equations

Consequently he is considered to be the father of algebra, a title he shares

with Diophantus The word algebra is derived from al-jabr, one of the two

operations used to solve quadratic equations, as described in his book

Algoritmi de numero Indorum, the Latin translation of his other major work

on the Indian numerals, introduced the positional number system and the

number zero to the Western world in the 12th century The words algorism

and algorithm stem from Algoritmi, the Latinization of his name.His name is

also the origin of the Spanish word guarismo, meaning digit

24

Trang 25

Xác định: rõ ràng, không mập mờ và các bước giải khả

thi có thể thực thi được

Mập mờ: thiếu thông tin hoặc có nhiều chọn lựa nhưng không

đủ điều kiện để quyết định

Thực thi được: xét trong điều kiện hiện tại của bài toán

Hữu hạn: số bước là hữu hạn và có tính chất dừng

Trang 26

Các đặc trưng khác của thuật toán

Đầu vào và đầu ra (Input/Output) : mọi thuật toán

đều nhận dữ liệu đầu vào, xử lý nó và cho ra kết

quả cuối cùng

Tính hiệu quả (Effectiveness) : dựa trên khối lượng

tính toán, không gian và thời gian khi thuật toán được thi hành Là yếu tố quyết định để đánh giá, chọn lựa cách giải quyết vấn đề – bài toán trên

thực tế

Tính tổng quát (Generalliness): áp dụng được cho

mọi trường hợp của bài toán

26

Trang 27

Nhập

dữ liệu Tính toán xử lý thông tin Xuất

Liệt kê - Sơ đồ

Nngữ lập trình Chương trình

thao tác 1; thao tác 2; …; thao tác N

TÓM TẮT

27

Trang 28

Ví dụ về thuật toán

Giải phương trình bậc nhất ax + b =0

1 Yêu cầu cho biết giá trị của a và b

3 Nếu a 0 thì phương trình có một nghiệm

duy nhất là x = - b/a Kết thúc thuật toán

28

Trang 29

Ví dụ về thuật toán

Thuật toán giải phương trình bậc hai ax 2 +bx+c=0 (a ≠0)

1 Yêu cầu cho biết giá trị của 3 hệ số a, b, c

3.3 Nếu = 0 thì

3.3.1 Phương trình có nghiệm kép x 0 3.3.2 Giá trị của nghiệm kép là x 0 = -b/2a 3.3.3 Kết thúc thuật toán

a

b x

2

2

2 1

29

Trang 30

Ví dụ về thuật toán

Thuật toán tìm hộp có trọng lượng nặng nhất

Vấn đề : Có n hộp có khối lượng khác nhau và một cái cân dĩa

Hãy chỉ ra cách cân để tìm được hộp có trọng lượng nặng nhất

Vấn đề này là thể hiện của một bài toán tổng quát : Cho một tập hợp A hữu hạn và một thứ tự toàn phần trên A Hãy xây dựng thuật toán tìm phần tử lớn nhất của A

Ý tưởng:

• Nếu có 1 hộp  hộp đó là nặng nhất

• Nếu có từ 2 hộp trở lên:

• Chọn 2 hộp bất kỳ đưa lên bàn cân  giữ lại hộp nặng

• Thực hiện cứ thế cho đến khi không còn hộp nào

• Hộp cuối cùng còn lại trên bàn cân là hộp nặng nhất

30

Trang 31

1 Nếu chỉ có 1 hộp (n=1) thì

1.1 Hộp đó chính là hộp nặng nhất

1.2 Kết thúc thuật toán

2 Ngược lại nếu có từ hai hộp trở lên (n>1)

2.1 Chọn hai hộp bất kỳ và đặt lên bàn cân

2.2 Giữ lại hộp nặng hơn, cất hộp nhẹ hơn sang chỗ khác

3 Nếu còn hộp chưa được cân thực hiện các bước sau, nếu không còn hộp nào nữa, sang bước 5

3.1 Chọn một hộp bất kỳ và để lên dĩa cân còn trống

3.2 Giữ lại hộp nặng hơn, cất hộp nhẹ hơn sang chỗ khác

4 Trở lại bước 3

5 Hộp còn lại trên cân chính là hộp nặng nhất Kết thúc

Lời giải trên máy tính = thuật toán

31

Trang 32

Lại thêm khái niệm thuật giải ?

Các tính chất của thuật toán rất chặt chẽ và cứng nhắc Nhưng điều đó cũng có nghĩa là khả năng giải quyết vấn đề theo kiểu thuật toán cũng bị giới hạn Sau này, người ta đã

"làm mềm" đi hai tính chất quan trọng của

thuật toán là tính xác định và tính đúng để giải quyết những vấn đề phức tạp hơn mà với các tính chất chặt chẽ của thuật toán thì không thể giải quyết được  Thuật giải – Algorithms.

32

Trang 33

Ví dụ 1 : Thuật giải nấu cơm

•  Gạo, củi}

•Nấu cơm :

–Vo gạo –Chuẩn bị lửa –Nấu, canh giờ

Trang 34

Ví dụ 2: Bài toán đổ nước

Có hai bình đựng nước là B5 có dung tích 5lít , B8 có dung tích 8lít Hãy chỉ ra cách đong để có được hai lít nước Các thao tác có thể thực hiện được là :

 Hứng đầy nước v{o bình B5 hoặc B8

 Đổ hết nước trong một bình

 Đổ nước từ bình n{y sang bình kh|c cho đến lúc bình kia đầy

Thuật giải :

Đổ đầy nước vào bình B5 (B5=5)

Một ví dụ khác …

TÍNH XÁC ĐỊNH VÀ TÍNH ĐÚNG

34

Trang 36

 Cả hai đều biểu diễn một trình tự xử lý để có kết quả mong muốn

 Lưu đồ: dùng cho các vấn đề trung bình/nhỏ

 Mã giả (pseudo code): có thể biểu diễn một trình tự lớn hơn

36

Microsoft Visio

Dùng bất kỳ trình soạn thảo để soạn

Trang 37

37

Trang 38

So s|nh hai số

Trang 41

}

Trang 42

Tìm hiệu v{ thương số của hai số

Trang 44

 Thực hiện theo trình tự

vấn đề trên giấy

 Cài đặt chương trình trên máy

Trang 45

Tìm số lớn nhất trong

3 số

Trang 47

47

Tính N giai

thừa

Trang 48

 Hiểu c|c kh|i niệm về lập trình, chương trình v{ c|c thuật ngữ liên quan

 Hiểu v{ vận dụng lưu đồ

 Hiểu c|ch viết một chương trình đơn giản

trên c|c ngôn ngữ kh|c nhau

 L{m việc bước đầu với một số IDE

48

Trang 49

1. Viết lưu đồ thể hiện: tính điểm trung bình

của học sinh với 3 môn toán, lý hoá

2. Đổi từ độ sang radian và ngược lại

3. Đổi tiền Việt Nam sang USD và ngược lại

4. Thực hành: viết chương trình của các bài tập

trên (C, C++, C#, JAVA)

49

Ngày đăng: 09/05/2021, 19:14

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm