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

Bài giảng Lập trình DOTNET: Chương 1 - Huỳnh Lê Uyên Minh

74 17 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 74
Dung lượng 1,08 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 Lập trình DOTNET: Chương 1 Cơ bản về ngôn ngữ lập trình C# cung cấp cho người học những kiến thức như: Giới thiệu ngôn ngữ C#; Kiểu dữ liệu, các phương thức chuyển kiểu; Khai báo biến, hằng, phép toán; Các cấu trúc lệnh; Hàm, tham số và cách truyền tham số; Các lớp cơ sở: chuỗi, mảng, tập hợp; Những ứng dụng Console.

Trang 2

NỘI DUNG

1 Giới thiệu ngôn ngữ C#

2 Kiểu dữ liệu, các phương thức chuyển kiểu

3 Khai báo biến, hằng, phép toán

4 Các cấu trúc lệnh

5 Hàm, tham số và cách truyền tham số

6 Các lớp cơ sở: chuỗi, mảng, tập hợp

7 Những ứng dụng Console

Trang 3

1 Ngôn ngữ lập trình 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)

• Hướng đối tượng

• Hỗ trợ kiểm soát và xử lý ngoại lệ (exception) tốt

• Các loại ứng dụng: Console, Windows Forms, Web Forms, Windows Services, Web Services

Hello.cs C# Compiler

Hello.exe hoặc Hello.dll

CLR trên Windows

CLR trên Linux

CLR trên MacOS MSIL

Trang 4

Giới thiệu Net Framework

• Framework là một tập hợp các thư viện để hỗ trợ cho người lập trình

• Mỗi Framework được tạo ra có một kiến trúc khác nhau  LTV phải tuân theo kiến trúc đó

• NET Framework là thư viện tài nguyên của Microsoft, hỗ trợ cho các lập trình viên trong nhiều yêu cầu khác nhau

Trang 5

Giới thiệu Net Framework

• Tất cả các chương trình phát triển trên NET sẽ được chuyển về mã trung gian - Microsoft Intermediate Language (MSIL)

– Bước 1: Dịch mã nguồn  MSIL

– Bước 2: MSIL  mã CLR thực thi

• CLR: Common Language Runtime/ Bộ thực thi ngôn ngữ dùng chung

• FCL: Framework Class Library

Trang 6

Tạo ứng dụng Console

Trang 7

Cấu trúc chương trình C#

• Phần chú thích (option)

• Phần khai báo dùng namespace (option)

• Phần định nghĩa namespace, lớp và các phương thức

// Chương trình C# đầu tiên

static void Main(string[] args){ {

Console Write( "Hello World!" );

Console ReadLine();

}

}

}

Trang 8

• Namespace System chứa nhiều lớp giao tiếp với hệ thống

• Từ khóa using dùng để khai báo namespace

Trang 9

Câu lệnh

• Các câu lệnh được viết trong thân của phương thức (ở đây là phương

thức Main)

• Thực hiện một công việc nào đó

• Kết thúc bởi 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 { }

namespace HelloWorld {

class Program {

static void Main(string[] args) {

Console Write( "Hello World!" );

Console ReadLine();

} } }

Các câu lệnh

Phương thức Main

Trang 10

Chú thích

• Chú thích (comment) được dùng để giải thích về chương trình và các câu lệnh

• Giúp cho chương trình dễ hiểu hơn

• Được bỏ qua khi biên dịch

• Không ảnh hưởng tới kết quả thực thi của chương trình

• Gõ phần chú thích sau cặp ký tự //

• Gõ phần chú thích giữa cặp ký tự /**/

/* Chương trình C# đầu tiên

In ra câu chào "Hello World" */

using System;

namespace HelloWorld {

class Program {

static void Main(string[] args) {

Console.Write("Hello World!"); // Xuất ra câu chào Console.ReadLine(); // Chờ nhấn Enter

} }

Trang 11

2 Kiểu dữ liệu

• 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

• C# cũng chia tập dữ liệu thành hai kiểu: giá trị và tham chiếu Biến kiểu giá trị được lưu trong vùng nhớ stack, còn biến kiểu tham chiếu được lưu trong vùng nhớ heap

Trang 12

Kiểu dữ liệu số nguyên

Name Common Type

System Description Range (min:max) **

sbyte System.SByte 8-bit signed integer -128:127 (-27:27-1) Số nguyên có dấu

short System.Int16 16-bit signed integer -32,768:32,767

(-215:215-1)

Số nguyên có dấu

int System.Int32 32-bit signed integer

2,147,483,648:2,147,483,647 (-231:231-1)

-Số nguyên có dấu

long System.Int64 64-bit signed integer

9,223,372,036,854,7

-75,808:

9,223,372,036,854,775,807 (-263:263-1)

Số nguyên có dấu

byte System.Byte 8-bit signed integer 0:255 (0:28-1) Số nguyên dương không dấu

ushort System.UInt16 16-bit signed integer 0:65,535 (0:216-1) Số nguyên dương không dấu

uint System.UInt32 32-bit signed integer 0:4,294,967,295

(0:232-1) Số nguyên dương không dấu

Trang 13

Kiểu dữ liệu số thập phân

Name Common Type

System

Descriptio

n Range (approximate) **

float System.Single 32-bit ±1.5 × 10-45 to ±3.4 × 1038 Kiểu dấu chấm động, với 7 chữ số có nghĩa

double System.Double 64-bit ±5.0 × 10-324 to ±1.7 ×

10308

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

decimal System.Decimal 128-bit ±1.0 × 10-28 to ±7.9 × 1028 Có độ chính xác đến 28 con số, phải có hậu

tố “m” hoặc “M” theo sau giá trị

Kiểu Boolean

bool System.Boolean true or false Giá trị logic

Kiểu Ký tự, Chuỗi

char System.Char 16-bit (Unicode) character Ký tự Unicode

string System.String Unicode character string

Kiểu đối tượng

object System.Object

The root type, from which all other types in the CTS

Trang 14

Kiểu chuỗi (string)

• 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”;

Trang 15

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

• Có 2 loại: mảng một chiều và mảng 2 chiều

Trang 16

Kiểu mảng

• Mảng một chiều

<KDL> []<Tên mảng>=new <KDL>[Số phần tử];

VD: Khai báo mảng số nguyên arr gồm 5 phần tử

int [] arr = new int [5];

• 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];

Trang 17

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

enum Ngay {Hai = 1, Ba, Tu, Nam, Sau=10, Bay, ChuNhat};

Hai = 1; Ba = 2; … ; Sau=10; Bay=11;ChuNhat = 12

Trang 19

Chuyển đổi kiểu dữ liệu

Trang 20

3 Khai báo biến, hằng, phép toán

Identifier (định danh)

• Định danh là việc xác định tên: biến, hàm, hằng, …

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

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á

Trang 21

Biến & khai báo biến

• Biến dùng để lưu trữ dữ liệu Mỗi biến thuộc về một KDL nào đó

• Khai báo: <kiểu dữ liệu> tên_biến;

Trang 22

Hằng

• Cú pháp khai báo hằng: const <kiểu dữ liệu> tên_hằng = <giá trị>;

VD: const int a = 20;

Trang 23

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ị

Trang 24

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

Trang 25

4 Câu lệnh điều khiển

• Rẽ nhánh : if…else

• Lựa chọn : switch…case

• Lặp : for, while, do…while, foreach

• Các cấu trúc khác : goto, break, continue

Trang 26

Nếu biểu thức điều kiện

cho kết quả khác khơng

(true) thì thực hiện

khới lệnh

Biểu thức điều kiện Đúng

Trang 28

Nếu biểu thức điều kiện

cho kết quả khác không thì

Trang 29

Cấu trúc rẽ nhánh: IF - VD: Giải và biện luận PT: ax+b=0

static void Main(string[] args)

Trang 30

Cấu trúc lựa chọn - switch…case

Trang 31

Ví dụ: Nhập vào số nguyên n có giá trị từ 1 đến 5 In cách đọc của số đó ra màn hình

static void Main(string[] args)

case 3: Console.WriteLine("So ba"); break;

case 4: Console.WriteLine("So bon"); break;

case 5: Console.WriteLine("So nam"); break;

default : Console.WriteLine(“Gia tri khong hop le");

}

}

Trang 32

Bài tập

• Nhập vào hai số nguyên a, b In ra màn hình giá trị lớn nhất

• Cho ba số a, b, c đọc vào từ bàn phím Hãy tìm giá trị lớn nhất của

ba số trên và in ra kết quả

Trang 34

Cấu trúc lặp while và for

Thực hiện các lệnh trong vòng lặp

Khởi gán

Đúng (Biểu thức điều kiện khác 0)

Kiểm tra biểuthức điều kiện

Tăng/ giảm chỉ

số lặpSai (Biểu thức

điều kiện = 0)

Trang 35

Hoạt động cấu trúc lặp while và for

• Bước 2: Kiểm tra biểu thức điều kiện

- Nếu kết quả là true thì cho thực hiện các lệnh của vòng lặp, thực hiện biểu thức tăng/ giảm Quay trở lại bước 2

- Ngược lại kết thúc vòng lặp

Trang 40

Cấu trúc lặp do…while

do { < khối lệnh> ; } while (biểu thức ĐK);

Thực hiện khối lệnh cho đến khi biểu thức điều kiện là false

Trang 44

• Lệnh break: dùng câu lệnh break khi muốn thoát khỏi vòng lặp

for (int i = 0; i < 10; i++)

Trang 45

Các lệnh điều khiển

• Lệnh continue: được dùng trong vòng lặp khi muốn thi hành tiếp vòng lặp nhưng không thi hành các lệnh còn lại trong vòng lặp, các lệnh sau lệnh continue

for (int i = 0; i < 10; i++)

• Lệnh return: dùng để thoát khỏi một hàm, nếu hàm có một kiểu dữ liệu trả

về thì return phải trả về một kiểu dữ liệu này

Trang 46

5 Một số hàm thông dụng

• Thông qua lớp Math

– Lấy giá trị tuyệt đối

int x = Math.Abs(-10); // kết quả x = 10

Trang 47

Một số hàm thông dụng (tt)

• Lớp ký tự - char

– bool char.IsDigit(char c) : có phải là ký số

– bool char.IsLetter(char c) : có phải là ký tự

– bool char.IsLetterOrDigit(char c) : có phải là ký tự hoặc ký số

– bool char.IsLower(char c) : có phải là ký tự thường

– bool char.IsUpper(char c) : có phải là ký tự hoa

– char char.ToUpper(char c) : trả về ký tự hoa

– char char.ToLower(char c) : trả về ký tự thường

Trang 49

Một số hàm thông dụng (tt)

• Lớp chuỗi – string

– Length : Chiều dài chuỗi (số ký tự)

– IndexOf(): Vị trí xuất hiện đầu tiên của một chuỗi con trong chuỗi

– LastIndexOf(): Vị trí xuất hiện cuối cùng của một chuỗi con trong

chuỗi

– ToUpper(): Trả về chuỗi chữ hoa

– ToLower(): Trả về chuỗi chữ thường

– Replace(): Thay thế chuỗi con trong chuỗi bằng một chuỗi con khác

– Split(): Cắt một chuỗi thành nhiều chuỗi con

– SubString(): Lấy một chuỗi con

Trang 50

str2 = str1.Replace(“w”, “W”); // str2=”Hello World”

str2 = str1.ToLower(); // str2 = “hello world”

str2 = str1.ToUpper(); // str2 = “HELLO WORLD”

Trang 51

Một số hàm thông dụng (tt)

Ví dụ 2:

int a = 1, b = 2, tong = a+b;

string str = "Tong " + a.ToString() + " va " + b.ToString() + " la " + tong.ToString();

string[] arrStr = str.Split(',') ;

for (int i=0; i<arrStr.Length;i++)

{

sum += Convert.ToInt32(arrStr[i]);

}

Trang 52

Một số hàm thông dụng (tt)

• Ví dụ 3: Hàm kiểm tra MSSV có phải là 7 ký tự số không?

private bool KiemTraMSSV(string mssv) {

// Kiem tra mssv chi co 7 ky tu

if (mssv.Length != 7) return false;

// Kiem tra cac ky tu phai la chu so

for (int i = 0; i < mssv.Length; i++)

Trang 53

Bài tập – dữ liệu kiểu chuỗi

• 1.Viết hàm tách tên Tham số truyền vào là họ và tên, hàm sẽ trả về tên

• 2.Viết hàm tách họ Tham số truyền vào là họ và tên, hàm sẽ trả về họ và chữ lót

• 3 Viết hàm chuẩn hóa chuỗi họ tên:

– Không có khoảng trắng trước và sau tên

– Không có hơn 1 ký tự khoảng trắng giữa các ký tự

– Ký tự đầu của các từ phải viết hoa

– Ví dụ: “Nguyen Y Van” là hợp lệ

• 4.Viết hàm đếm số từ trong chuỗi

– Ví dụ: “Truong Dai hoc Dong Thap”  5

• 5.Viết hàm chuyển đổi số thành chữ

– Ví dụ: 12345  Mười hai nghìn ba trăm bốn mươi lăm

Trang 54

6 Method - Phương thức

• Phương thức (hay còn gọi là hàm) là một đoạn chương trình độc lập thực hiện trọn vẹn một công việc nhất định sau đó trả về giá trị cho chương trình gọi nó, hay nói cách khác hàm là sự chia nhỏ của chương trình

Mục đích sử dụng phương thức:

• Khi có một công việc giống nhau cần thực hiện ở nhiều vị trí

• Khi cần chia một chương trình lớn phức tạp thành các đơn thể nhỏ (hàm con) để chương trình được trong sáng,

dễ hiểu trong việc xử lý, tính toán

Trang 55

Phương thức

Mẫu tổng quát của phương thức

<phạm vi> <KDL> TênPhươngThức([tham số]);

Trang 56

Phương thức

KDL của phương thức (đầu ra), gồm 2 loại

• void: Không trả về giá trị

• float / int / long / string / kiểu cấu trúc / … : Trả về giá trị có KDL tương ứng với kết quả xử lý

Trang 58

Khi hàm xử lý biến toàn cục thì không cần tham số

Trang 59

Phương thức không trả về giá trị

static void TênPhươngThức([danh sách các tham số])

{

Khai báo các biến cục bộ

Các câu lệnh hay lời gọi đến phương thức khác

}

• Gọi hàm: TênPhươngThức(danh sách tên các đối số);

• Những phương thức loại này thường rơi vào những nhóm chức năng: Nhập / xuất dữ liệu, thống kê, sắp xếp, liệt kê

59

Trang 60

• Input: số nguyên dương (Xác định tham số)

• Output: In ra các ước số của n (Xác định KDL trả về của phương thức)

- Xuất  Không trả về giá trị  KDL là void

- Xác định tên phương thức: Phương thức này dùng in ra các

US của n nên có thể đặt là LietKeUocSo

static void LietKeUocSo(uint n)

Viết chương trình nhập số nguyên dương n và in ra màn hình các ước số của n

Trang 61

static void LietKeUocSo(uint n)

Trang 62

 Phương thức có trả về kết quả

static <KDL> TênPhươngThức([tham số])

{

}

Gọi hàm:

<KDL> Tên biến = TênPhươngThức(tên các đối số);

Những phương thức này thường rơi vào các nhóm: Tính

tổng, tích, trung bình, đếm, kiểm tra, tìm kiếm

Trang 63

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

• Input: số nguyên dương n (Xác định tham số)

• Output: Tổng S (Xác định KDL trả về của phương thức)

 Trả về giá trị tổng (S)

 S là tổng các số nguyên dương nên S cũng là số nguyên dương 

Kiểu trả về của hàm là ulong

• Xác định TênPhươngThức: Dùng tính tổng S nên có thể đặt là TongS

static ulong TongS(uint n)

63

0

; 3

Trang 64

static ulong TongS(uint n)

Trang 65

Tham số là tham chiếu

• Tham số lưu kết quả xử lý của hàm: out (thường dùng cho trường hợp nhập dữ liệu, kết quả hàm có nhiều giá trị)

• Tham số vừa làm đầu vào và đầu ra: ref

số và trước tên đối số khi gọi phương thức

• Dùng từ khóa ref bắt buộc phải khởi gán giá trị ban đầu cho đối số trước khi truyền vào khi gọi phương thức (Nếu dùng out thì không cần thiết)

65

Trang 66

Ví dụ: Hoán vị 2 số nguyên a, b cho trước

Đánh giá kết quả khi viết chương trình với hai trường hợp sau

Trang 67

 Không dùng tham chiếu

static void HoanVi(int a, int b)

Trang 69

Ví dụ - sử dụng tham chiếu out

static void Nhap( out int a, out int b)

Trang 70

Bài tập

 Viết chương trình tính diện tích và chu vi của hình chữ nhật

 Viết chương trình tính diện tích và chu vi hình tròn

 Nhập vào 3 số thực a, b, c và kiểm tra xem chúng có lập thành 3 cạnh của một tam giác hay không? Nếu có hãy tính diện tích, chiều dài mỗi đường cao của tam giác và

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

Trang 71

Bài tập

71

 Viết chương trình nhập 2 số nguyên dương a, b

Tìm USCLN & BSCNN

 Viết chương trình nhập số nguyên dương n, tính

tổng các ước số của n

Ví dụ: Nhập n=6 Tổng các ước số từ 1 đến n: 1+2+3+6=12

 Nhập vào giờ, phút, giây Kiểm tra xem giờ,

phút, giây đó có hợp lệ hay không?

Trang 73

Thao tác trên Console

Trang 74

Một số site tham khảo

https://sites.google.com/site/duongniit905/lap-trinh/tai-lieu-hoc-c-danh-cho-nguoi-moi-bat-dau

Ngày đăng: 13/07/2021, 11:41

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