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

Bài giảng Nhập môn lập trình: Chương 2 - Trần Minh Thái

85 14 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

Tiêu đề Giới thiệu ngôn ngữ C#
Tác giả Trần Minh Thái
Trường học Học viện Hàng không Việt Nam
Chuyên ngành Lập trình
Thể loại Bài giảng
Định dạng
Số trang 85
Dung lượng 788,29 KB

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 Nhập môn lập trình - Chương 2: Giới thiệu ngôn ngữ C# cung cấp các kiến thức giúp sinh viên có thể: Giới thiệu .Net FramWork, các khái niệm cơ bản về ngôn ngữ C#, cấu trúc của một chương trình và cách trình bày chương trình, giới thiệu công cụ lập trình và các chức năng liên quan, lệnh nhập/ xuất trong C#.

Trang 1

CHƯƠNG 2 GIỚI THIỆU NGÔN

Trang 3

3

Trang 4

.NET Framework

4

Trang 5

.NET Framework

5

Trang 6

.Net Framework

6

Trang 7

 Các thư viện đê phát triển ứng dụng

 Bộ thực thi ngôn ngữ dùng chung (CLR)

7

Trang 8

.NET Framework

 Chương trình được biên dịch thành ngôn ngữ trung gian (MSIL - Microsoft Intermediate Language), sau đó chúng được CLR thực thi.

 Common Language Runtime - CLR, nền tảng hướng đối tượng cho phát triển ứng dụng Windows

và Web mà các ngôn ngữ có thể chia sẻ sử dụng

 Bộ thư viện Framework Class Library - FCL.

Trần Minh Thái

8

Trang 9

.NET Framework

 Common Language Runtime - CLR, nền tảng hướng đối tượng cho phát triển ứng dụng Windows và Web mà các ngôn ngữ có thể chia sẻ sử dụng

 Bộ thư viện Framework Class Library - FCL

Trần Minh Thái

9

Trang 10

.NET Framework

Trần Minh Thái

10

Trang 12

Ngôn ngữ C#

 Ngôn ngữ lập trình được xây dựng dựa trên nền tảng những ngôn ngữ tương tự C (C, C++, Java)

 Hoạt động trên NET Framework

Trần Minh Thái

12

Trang 13

Ngôn ngữ C#

 Dựa trên phương pháp thiết kế hướng đối tượng

 Ứng dụng : Console, WinForm, WebForm

 Có tính diễn đạt ngữ nghĩa cao

 Phân biệt chữ hoa thường

Trần Minh Thái

13

Trang 14

Khởi Tạo Project

B1 Chọn

B2 Chọn Console Application

B3 Đặt tên Project

B4 Vị trí lưu

B4 Đặt tên Solution

Trang 15

Khởi Tạo Project

File Program.cs là file mặc định chứa hàm Main của chương trình

15

Trang 16

Compile & chạy chương trình

 Trình biên dịch (compiler) sẽ biên dịch các tập tin chứa ngôn ngữ C# thường là các file cs trong project thành một tập tin chạy chương trình exe

 Có 2 cách biên dịch :

 Tại cửa sổ cmd, gõ : csc.exe tenfile.cs

 Nhấn Build / Compile (hoặc Build / Build Solution)  Biên dịch cả project.

16

Trang 17

Compile & chạy chương trình

Trang 18

Từ khoá – Keywords

case catch char checked class const continue decimal default delegate do double else enum

event explicit extern false finally fixed float

int interface internal is lock long namespace new null object operator out override params partial* private protected public readonly ref remove return sbyte sealed set* short sizeof stackalloc static string struct switch this throw true

try typeof uint ulong unchecked unsafe ushort

using value* virtual void volatile where* while

yield

18

Trang 19

Khởi Tạo Project

Trang 20

Namespace (không gian tên)

Namespace là một khái niệm được sử dụng để phân nhóm các lớp đối tượng trong Net Framework, tránh việc trùng tên giữa các lớp đối tượng

Trần Minh Thái

20

Trang 21

Namespace (không gian tên)

Trang 24

π, … hoặc tiếng việt có dấu: â, ă, ô…

25

Trang 25

Lệnh & Khối lệnh

 Một câu lệnh thực hiện một chức năng nào

đó (gán, xuất, nhập, …) và được kết thúc bằng dấu chấm phẩy (;)

 Khối lệnh gồm nhiều lệnh và được đặt trong cặp dấu ngoặc nhọn { }

26

Trang 26

Data Types (Kiểu dữ liệu - KDL)

 KDL là các loại dữ liệu và phạm vi giá trị của chúng trong bộ nhớ mà người lập trình

sử dụng để lưu trữ

 Có 2 loại : KDL dựng sẵn & KDL tự định nghĩa

27

Trang 27

Data Types (Kiểu dữ liệu - KDL)

C# cũng chia tập dữ liệu thành hai kiểu: giá trị

Trang 29

Số nguyên

C#

Kích Thước

byte 1 Byte [0 255] Số nguyên dương không dấusbyte 1 Sbyte [-128 127] Số nguyên có dấu short 2 Int16 [0 65.535] Số nguyên không dấu int 4 Int32 Từ -2.147.483.647 đến 2.147.483.646 Số nguyên có dấu uint 4 Uint32 Từ 0 đến 4.294.967.295 Số nguyên không dấu long 8 Int64 Từ -9.223.370.036.854.775.808đến 9.223.370.036.854.775.807 Số nguyên có dấu ulong 8 Uint64 Từ 0 đến 0xffff ffff ffff ffff Số nguyên không dấu

30

Trang 30

Ký tự và logic

C# thước Kích

(byte)

.NET Miền giá trị Mô tả

bool 1 Boolean true hoặc false Giá trị logic

Unicode

31

Trang 31

Số thực

C# thước Kích

(byte) .NET Miền giá trị Mô tả

float 4 Single Từ 3,4E-38 đến 3,4E+38 Kiểu dấu chấm động, với 7 chữ số có nghĩa

double 8 Double Từ 1,7E308 đến 1,7E+308

Kiểu dấu chấm động

có độ chính xác gấp đôi, với 15 chữ số có nghĩa

decimal 8 Decimal

Có độ chính xác đến

28 con số, phải có hậu tố “m” hoặc “M” theo sau giá trị

32

Trang 32

String (kiểu chuỗi)

 Kiểu string có thể chứa nội dung không giới hạn, vì đây là kiểu dữ liệu đối tượng được chứa ở bộ nhớ heap

 Khai báo:

string s = “Nguyen Van A”;

33

Trang 33

Kiểu mảng

 Mảng là một tập hợp các phần tử cùng một kiểu dữ liệu liên tiếp nhau và được truy xuất thông qua chỉ số

 Chỉ số bắt đầu từ 0

34

Trang 35

Kiểu mảng

 Mảng hai chiều

<KDL> [,]<Tên mảng>=new <KDL>[Số dòng, số cột];

VD: Khai báo ma trận số nguyên mt gồm 5 dòng và 3 cột

long [ ,] mt = new long [5, 3];

36

Trang 36

Enum (kiểu liệt kê)

Enum là một cách thức để đặt tên cho các trị nguyên (các trị kiểu số nguyên, theo nghĩa nào đó tương tự như tập các hằng), làm cho chương trình rõ ràng, dễ hiểu hơn

37

Trang 37

Enum (kiểu liệt kê)

Trang 38

Enum (kiểu liệt kê)

Trang 39

Struct (kiểu cấu trúc)

 Struct dùng để nhóm các dữ liệu cùng liên quan đến một đối tượng nào đó

Trang 40

Struct (kiểu cấu trúc)

struct SV

{

public string ten;

public string maso;

Trang 42

Identifier (định danh)

Quy ước đặt tên :

 Sử dụng 26 chữ cái (thường/ hoa), 10 chữ số

 Dấu nối ( _ )

 Không dùng chữ số ở đầu

 Không trùng với từ khoá

43

Trang 43

 Một biến đại diện cho một vùng nhớ hay tập các vùng nhớ trên bộ nhớ chính của máy tính Tên biến được dùng để tham khảo đến những vùng nhớ này

 Biến để lưu trữ các giá trị do người dùng nhập vào hoặc các giá trị tạm thời trong quá trình tính toán

 Mỗi biến sẽ có tên và kiểu dữ liệu tương ứng Kiểu

dữ liệu của biến xác định những giá trị kiểu nào có thể được lưu trong biến (ví dụ số hay chữ…)

 PHẢI khai báo BiẾN trước khi sử dụng

44

Trang 44

Biến & khai báo biến

Trang 45

Biến & khai báo biến

VD: Khai báo và khởi tạo:

Trang 46

/ Chia Đối với số chia & bị chia là nguyên thì cho kết quả là phần nguyên

% Chia lấy phần dư Chỉ áp dụng cho số chia & bị chia là số nguyên++x; x+

+ Tăng x 1 đơn vị

x; x Giảm x 1 đơn vị

47

Trang 47

Ký hiệu so sánh và phép toán bit

Trang 48

Thứ tự ưu tiên phép toán

Toán tử Độ ưu

tiên

Trình tự kết

hợp

! ~ ++ - + * & sizeof 2 Từ phải qua trái

<< >> 5 Từ trái qua phải

< <= >= > 6 Từ trái qua phải

= += -= *= /= %= 14 Từ phải qua trái

49

Trang 50

Cho biết kết quả của đoạn chương trình sau:

int a, b;

b=a%2 + a/2 + a;

Với a = 17 Kết quả: a = ?; b = ? Với a = 3 Kết quả: a = ?; b = ? - int a, b;

b=a/3 + a ;

Với a = 8 Kết quả: a = ?; b = ? Với a =21 Kết quả: a = ?; b = ?

51

Trang 51

Toán tử điều kiện

(ĐK)?<BT cho trường hợp đúng>:<BT cho trường hợp

Trang 52

Hàm xuất – System Console

Trang 53

Hàm xuất – System Console

Trang 54

Xuất ký tự đặc biệt

Trang 58

VD Viết chương trình nhập vào số nguyên

Trang 59

Bài tập áp dụng

 Nhập vào giờ phút và giây, đổi ra giây và

xuất kết quả ra màn hình

 Nhập vào 3 số nguyên a, b và c, tính giá trị

trung bình cộng của 3 số trên và xuất kết quả

ra màn hình

60

Trang 60

Thao tác trên Console

Trần Minh Thái

61

Cửa sổ Console

Cột (0, 0)

Console.WindowWidth

Trang 61

Di chuyển dấu nháy

Trang 62

Lấy số ngẫu nhiên

Trang 63

Console.WriteLine(songaunhien); songaunhien = rd.Next(10, 100); Console.WriteLine(songaunhien); sothuc = rd.NextDouble();

Console.WriteLine(sothuc); Trần Minh Thái

64

Trang 64

Lấy ngày giờ hệ thống

 Sử dụng lớp DateTime

DateTime d = DateTime.Now

int iGio = d.Hour; Lấy giờ

int iPhut = d.Minute; Lấy phút

int iGiay = d.Second; Lấy giây

int iMGiay = d.Millisecond; Lấy phần ngàn của giây

Trần Minh Thái

65

Trang 65

Xác định phím nhấn trong Console

ConsoleKeyInfo k = Console.ReadKey()

 Nếu không muốn hiển thị phím được nhấn thì truyền true vào tham số phương thức ReadKey:ConsoleKeyInfo k = Console.ReadKey(true)

Trần Minh Thái

66

Trang 66

Xác định phím nhấn trong Console

Cấu trúc ConsoleKeyInfo

Thuộc tính Key: Chứa tên phím được nhấn

Xác định bằng cách so giá trị với các phím trong ConsoleKey

Thuộc tính Modifiers: Cho biết phím Ctrl,

Shift hoặc Alt có được nhấn kèm

Trần Minh Thái

67

Trang 67

Xác định phím nhấn trong Console

Xác định phím Ctrl, Alt hay Shift được nhấn bằng cách dùng phép toán AND (&) thuộc tính Modifiers với :

Trang 68

if ( k.Modifiers!=0 && (k.Modifiers&ConsoleModifiers.Shift)!=0 )

Console.Write(“Ban nhan phim Shift + A”);

Trang 69

Kiểm tra phím có nhấn hay không?

Trang 70

while (!Console.KeyAvailable)

{

DateTime d = DateTime.Now;

Console.Write("{0:00}:{1:00}:{2:00}",

d.Hour, d.Minute, d.Second);

Thread.Sleep(1000); //using System.Threading;

Trang 73

Ẩn hiện dấu nháy

 Ẩn dấu nháy

Console.CursorVisible = false;

 Hiện dấu nháy

Console.CursorVisible = true;

VD: Hiển thị giờ phút giây trên màn hình với

màu nền là màu xanh và màu chữ là đỏ

Trần Minh Thái

74

Trang 74

Console.CursorVisible = false;

ConsoleColor mauchu = Console.ForegroundColor;

ConsoleColor maunen = Console.BackgroundColor;

Trang 75

Qui tắc đặt tên

Dùng để đặt tên biến, tên hằng, tên hàm, …

 Bắt đầu bằng một ký tự

 Các ký tự trong tên biến chỉ có thể là các

ký tự chữ, số hoặc dấu gạch dưới (_)

 Không được trùng với các từ khoá

 Không được trùng với phạm vi khai báo

 Tên dễ hiểu, súc tích và gợi nhớ

 Phân biệt chữ hoa và thường

76

Trang 76

Các định danh nào sau đây là không hợp lệ?

Trang 77

Khai báo biến

Khai báo nhiều biến cùng kiểu

<Kiểu dữ liệu> tênbiến1, tênbiến2, tênbiến3;

Ví dụ:

int a, x, y;

78

Trang 78

Khai báo và khởi gán giá trị ban đầu cho biến

<Kiểu dữ liệu> tênbiến = giá trị;

Trang 79

Các loại hằng số

 Hằng số: Đó là các giá trị xác định, một hằng

số có thể là nguyên (có kiểu dữ liệu int, hay long int) hay thực (có kiểu dữ liệu là float,

double, long double)

 Hằng ký tự: Được đặt trong dấu nháy đơn Ví dụ: 'A', 'a' tương ứng với giá trị nguyên 65, 97 trong bảng mã ASCII

 Hằng chuỗi: Là tập hợp các ký tự được đặt trong cặp dấu nháy kép " " Ví dụ: “Lap trinh C#”

80

Trang 80

Cách trình bày chương trình

 Mỗi lệnh nằm trên một dòng Cuối dòng lệnh

sao cho mỗi lệnh phải được quan sát trọn vẹn trong pham vi cửa sổ lệnh

81

Trang 81

Cách trình bày chương trình (tt)

 Không nên đặt nhiều lệnh trên cùng một dòng, ngay cả các khai báo biến, nếu các biến có khác kiểu cũng nên đặt trên các dòng khác nhau.

 Có các chú thích, ghi chú đầy đủ

 Chương trình phân cấp các khối lệnh con theo từng cột

82

Trang 82

Các lỗi thường gặp khi viết chương trình

KHÔNG khai báo các biến sử dụng trong chương trình

Lưu một giá trị vào một biến nhưng KHÔNG

cùng kiểu dữ liệu với biến

Sử dụng biến trong một biểu thức khi CHƯA

có giá trị

83

Trang 83

Các lỗi thường gặp khi viết chương trình

Dùng phép chia KHÔNG ép kiểu cho số nguyên

Trang 84

Bài tập về nhà

85

 Viết chương trình cho phép nhập vào một số đo

nhiệt độ theo độ Fahrenheit và xuất ra nhiệt độ tương đương của nó theo độ Celsius, sử dụng công thức chuyển đổi:

 Viết chương trình nhập vào 3 số nguyên a, b và c,

cho biết 3 số vừa nhập có thứ tự tăng dần (a<b<c)

không? Xuất kết quả

) 32

( 9

Trang 85

86

Ngày đăng: 08/05/2021, 14:12

TỪ KHÓA LIÊN QUAN

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