1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng Cơ sở lập trình

89 11 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 89
Dung lượng 2,26 MB

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

Nội dung

 Trang bị cho sinh viên những kiến thức về lập trình, thuật toán, phương pháp Top Down Design  Ngôn ngữ lập trình C# và nền tảng phát triển phần mềm trên Net Framework  Phương pháp lậ

Trang 1

 Trang bị cho sinh viên những kiến thức về lập trình,

thuật toán, phương pháp Top Down Design

 Ngôn ngữ lập trình C# và nền tảng phát triển phần

mềm trên Net Framework

 Phương pháp lập trình hướng đối tượng

 Lập trình trên Winform

 Phương pháp phát triển ứng dụng trên kiến trúc

component, kiến trúc n-tier

 Rèn luyện cho sinh viên kỹ năng vận dụng kiến thức

để xây dựng một ứng dụng thực tế

Tài liệu học tập

Programming Csharp, 4th edition, Oreilly 2005

Lập trình hướng đối tượng với C#.

Beginning C# Objects: From Concepts to Code, Jacquie

Barker and Grant Palmer , Apress 2004

Microsoft Visual C# 2005 step by step, Microsoft Press

Developing Windows-Based Applications with Microsoft

Visual Basic NET and Microsoft Visual C# NET, 2002

2003

Trang 2

Tiêu chuẩn đánh giá sinh viên

 Kết quả học tập của sinh viên được

 Thang điểm đánh giá : 10

Chương 1 Tổng quan về lập trình cho

MTĐT và C#

Trang 3

Chương 3 Xây dựng lớp – Đối tượng

Trang 4

 Giới thiệu các biểu mẫu windows

 Làm việc với các điều khiển

 Xử lý sự kiện

 Bàn phím và chuột

Chương 8 Thao tác tệp tin

Khái niệm tập tin.

Giới thiệu namespace System.IO

Các bước xử lý tệp tin

Các phương thức xử lý tệp tin.

Tạo lập và xử lý tệp tin văn bản

Tạo lập và xử lý tệp tin nhị phân

Trang 5

Chương 1 Tổng quan về lập trình cho MTĐT

Đại học Ngân hàng TP Hồ Chí Minh

Nội dung trình bày

trình, giải thuật

Chương trình

Computer program - Là tập hợp các câu

lệnh (chỉ dẫn) được liệt kê theo một trình

tự nhất định nhằm giải quyết một vấn đề.

Chương trình máy tính được viết trên

một ngôn ngữ lập trình.

Theo Niklaus Wirth

Chương trình = Cấu trúc dữ liệu + Giải thuật

Trang 6

Giải thuật - Algorithm

Giải thuật (Thuật toán - Thuật giải)

một số hữu hạn bước thực hiện ta đạt được

kết quả mong muốn

Câu lệnh, chương trình, phần mềm

Software

Program 2 Program 1

Ngôn ngữ lập trình

Programming language - Ngôn ngữ lập

trình là ngôn ngữ để viết chương trình.

Ngôn ngữ lập trình bao gồm hệ thống

các ký hiệu, các qui ước về ngữ pháp và

ngữ nghĩa, dùng để xây dựng thành các

chương trình cho máy tính.

Có nhiều loại ngôn ngữ lập trình.

Trang 7

4GLs ORACLE, SEQUEL, INGRES,

5GLs Artificial intelligence

Hợp ngữ - Assembler

Các bước lập trình

Xác định yêu cầu

bài toán

Phân tích bài toán

Thiết kế Giải thuật

Cài đặt Kiểm thử Bảo trì và Cập nhật

Trang 8

Mô tả giải thuật

Ngôn ngữ tự nhiên

Sơ đồ khối (flow chart)

Mã giả (Pseudocode)

Mô tả bằng ngôn ngữ tự nhiên

Input: Vào a, b thuộc tập R

Bằng Sơ đồ khối (Flow Chart)

Condition expression: Lựa chọn, kiểm tra điều

kiện

Process : Xử lý

Data input/ out put : Vào ra dữ liệu

Flow line: Luồng xử lý

Begin, End : Bắt đầu, kết thúc

Trang 10

Bằng mã giả

Input: Vào a, b thuộc tập R

Xuất “Phương trình có nghiệm x = -b/a”

3 cấu trúc điều khiển cơ bản

Trong lập trình có 3 cấu trúc cơ bản

Tuần tự: các bước thực hiện tuần tự, từ

trên xuống, mỗi bước thực hiện đúng 1 lần

refinement , với qui tắc

Chia bai toán lớn thành các bài toán con

Tiếp tục chia các bài toán con đó thành các bài

toán con nhỏ

Tiếp tục quá trình trên khi các bài toán con có thể

giải quyết dễ dàng

Trang 11

đặc tả yêu cầu của hệ thống

Trang 12

Các phabị lặp lại quá nhiều lần

T ạo nguyên mẫu (prototype)

Tạo các nguyên mẫu cho người sử dụng dùng rồi tạo ra

hoàn thiện hệ thống

Ưu điểm:

Linhhoạt trong việc thay đổi yêu cầu

Rútngắn thời gian phát triển

Nhược điểm:

Trang 13

Các phương pháp lập trình

Lập trình tuần tự: Assembler (hợp ngữ)

Khó kiểm soát lỗi

Chương trình chính được chia nhỏ thành các

So sánh HĐT và hướng chức năng

Cách tiếp cận hướng đối tượng

tượng cùng làm việc với nhau để

Các đối tượng thực hiện hành động khi được

yêu cầu

Mỗi đối tượng duy trì dữ liệu riêng của nó

Tiếp cận thủ tục (Procedural approach)

tục tương tác với dữ liệu

Dữ liệu tách rời các thủ tục

Trang 14

So sánh HĐT và hướng chức năng

 Tiếp cận hướng chức năng và tiếp cận hướng đối tượng

Khái niệm về hướng đối tượng

Lớp (Classes)

Đối tượng (Objects)

 Attributes

Trừu tượng hóa dữ liệu

Bao gói và che dấu thông tin

Trang 15

Trừu tượng hóa dữ liệu

Môtả bài toán với những khía cạnh quan trọng nhất

bắt các đặc trưng cơ bản nhất của chúng và xác định

rõmối quan hệ giữa các đối tượng với nhau

Bao gói và che dấu thống tin

TaoDH CapnhatDH GiatriDH

Trang 16

Môi trường phần mềm trước đây

Đối với người phát triển ứng dụng

Bất lợi của DLL và đăng ký vào registry

Phải xác định thiết bị truy cập

nhau

tán

Trang 17

Môi trường phần mềm trước đây (tt)

Đối với người sử dụng

.NET framework

Tích hợp một số công nghệ đã có của Microsoft và

một số công nghệ mới nhằm tạo ra giao diện lập trình

Ứng dụng độc lập với thiết bị client

Tháng 7/2000, Microsoft giới thiệu Net

Kiến trúc của Net framework

Gồm hai thành phần chính

Trang 18

Kiến trúc Net framework

Operate System

Common Language Runtime

Base Class Library

ADO NET: Data and XML

ASP NET

Web Forms Web Services

ASP.NET Mobile Controls

Windows Forms

Common Language Specification

Common Language Runtime - CLR

của NET Framework

Biên dịch (Just-in-time compiler)

Framework Class Libraries - FCL

Thư viện lớp.NET Framework

kiểu dữ liệu được dùng lại (các thư viên lớp

được đóng gói trước cho việc dùng lại),

khoảng 4000 lớp

.NET

gian tên gọi là System

Trang 19

design n-tier design

.Net là đa ngôn ngữ

Development Tools

app.exe

FCL

.NET là đa ngôn ngữ (tt)

.Net không chỉ hỗ trợ một ngôn ngữ độc

Trang 20

CLR for

Linux

CLR for Windows

CLR for Unix

.NET Compiler

Linux Native

code

Windows Native code

Unix Native code

.Net là độc lập về hệ điều hành

(Cross-platform) được hiểu theo 2 cách sau:

Library(FCL), không dựa trên OS

Trình biên dịch phát sinh ra ngôn ngữ chung được

thực thi bởi Common Language Runtime (CLR)

Trang 21

Biên dịch trong NET

Code in VB.NET Code in C# Code in another .NET Language

VB.NET compiler C# compiler AppropriateCompiler

IL(IntermediateLanguage) codeCLR (Common Language Runtime)

just-in-time compilation

Biên dịch trong NET (tt)

được biên dịch vào ngôn ngữ trung gian

(IL-Intermediate Language), không phải là mã

máy (code machine)

CLR biên dịch lại các mã trung gian (IL code)

vào mã máy tức thời khi thực thi chương

trình, just-in-time (JIT): khi hàm đuợc gọi

Mã JIT tồn tại trong bộ nhớ cho các lần gọi

sau (nếu bộ nhớ cho phép)

Biên dịch trong NET (tt)

ngôn ngữ lập trình nào trong Net

tượng được tạo ra từ ngôn ngữ này có thể được

truy cập hay được dẫn xuất từ một đối tượng

của ngôn ngữ khác trong NET

Ví dụ, người phát triển có thể tạo một lớp cơ sở trong

VB.NET và sau đó dẫn xuất nó trong C# một cách dễ

dàng

Trang 22

Biên dịch trong NET (tt)

Tại sao phải có 2 lần biên dịch

Độc lập với hệ điều hành

 NET framewwork có thể cài đặt trên nhiều platform

 Các chương trình NET được thực hiện mà không có thay

đổi code nào (viết 1 lần, chạy mọi nơi)

 Các chương trình Net không bị trói buộc vào một ngôn

ngữ cụ thể nào cả

 Các chương trình trong Net có thể được viết bới các

ngôn ngữ trong Net

Thiết kế ứng dụng trong Net

Các ứng dụng nguyên khối (Monolithic

Trang 23

Tại sao phải Component-based

Lập trình nhóm (team programming)

Phát triển ứng dụng đa ngôn ngữ (tôi dùng

C#, bạn dùng C++, cô ấy dùng VB.Net)

Sử dụng lại mã nguồn (code reuse)

Nâng cấp độc lập (nâng cấp thành phần X)

Các loại ứng dụng trong NET

Sử dụng Net để xây dựng các loại ứng

Trang 24

Các ứng dụng Net được đóng gói vào

các phần gọi là assembly

1 assembly = 1 hay nhiều lớp được biên

dịch, gồm một hay nhiều file nguồn

.exe mô tả gói gồm các lớp với Main()

.EXE / DLL

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

Trang 25

.DLL DLL

obj code

Giới thiệu về C#

Trình biên dịch C# là hiệu quả nhất trong họ ngôn ngữ

.NET

Là ngôn ngữ lập trình hướng đối tượng, đơn giản, an

toàn, ít từ khóa (80 từ khóa)

C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành

phần component

Giới thiệu vào 7/2000

Trang 26

C# và các ngôn ngữ khác

C# mang sức mạnh của C++ với sự dễ

dàng của ngôn ngữ Visual Basic

C# và các ngôn ngữ họ Net biên dịch ra

IL còn Java biên dịch ra bytecode (mã

trung gian), sau đó chúng được thực

hiện bằng cách thông dịch hoặc biên

dịch just-in-time trong từng máy ảo

Phát triển chương trình minh họa

Có tối thiểu là hai cách để soạn thảo,

biên dịch và thực thi chương trình:

(IDE) Visual Studio NET

bất kỳ như Notepad rồi dùng biên dịch dòng

lệnh

Trang 27

Biên dịch thành Assemblies

Tạo một assembly từ một hay nhiều file nguồn

Ví dụ : tạo một có tên assembly

“array.dll” từ file array1.cs:

Tạo file thực thi (Executables)

Tạo flie thực thi sử dụng chỉ dẫn /target:exe

:

Ví dụ: tạo ra file array.exetừ file array1.cs

Tham chiếu một Assembly

Để tham chiếu một assembly, thêm /reference

khi biên dịch file thực thi:

Ví dụ: tạo ra array.exetừ file nguồn array1.cs

tham chiếu đến assembly có tên array2.dll:

Trang 28

Biên dịch và chạy chương trình trình

prompt

Step 2 –lưu file với phần mở rộng là cs

Xóa đối số (string[] args) trong phương thức

Main( ) Sau đó gõ dòng lệnh sau đây vao

thân của Main():

Trang 29

Q&A

Trang 30

Chương 2

Nền tảng ngôn ngữ C#

Giảng viên: ThS Phạm Thanh An

Đại học Ngân hàng Tp Hồ Chí Minh

Nội dung trình bày

 Kiểu dữ liệu cơ bản.

Mô tả kiểu dữ liệu trong C#

St r i ng Ar r ay Va l ueType Ex cept i on De l egat e Cl ass1

Mul t i cast

De l egat e Cl ass2

Cl ass3 Obj ect

Enum1

St r uct ur e1 Enum

Trang 31

Kiểu dữ liệu

Phải khai báo kiểu của mỗi biến, đối tượng khi

sử dụng

integer, float, string, byte, buttons, v.v

C# chia thành hai tập hợp kiểu dữ liệu chính:

Kiểu xây dựng sẵn (built- in)

Kiểu được người dùng định nghĩa (user-defined)

do người lập trình tạo ra (lớp, struct, v.v)

Kiểu dữ liệu tham chiếu (reference type):

classes, interfaces, arrays và strings

Kiểu dữ liệu xây dựng sẵn

object Kiểu dữ liệu cơ sở cho tất cả các kiểu

dữ liệu khác object o = null;

string Lưu trữ giá trị chuỗi string s =

“hello”;

short 2 Int16 Số nguyên có dấu giá trị từ -32768

đến 32767.

ushort 2 Uint16 Số nguyên không dấu 0 – 65.535

int 4 Int32 Số nguyên có dấu –2.147.483.647 và

2.147.483.647

int val = 12;

uint 4 Uint32 Số nguyên không dấu 0 –

Trang 32

Kiểu dữ liệu xây dựng sẵn (tt)

sbyte 1 Sbyte Số nguyên có dấu ( từ -128 đến 127)

byte 1 Số nguyên không dấu từ 0 - 255

long 8 Int64 Kiểu số nguyên có dấu có giá trị trong

khoảng : -9.223.370.036.854.775.808 đến 9.223.372.036.854.775.807 ulong 8 Uint64 Số nguyên không dấu từ 0 đến

float 4 Single Kiểu dấu chấm động, giá trị xấp xỉ từ

3,4E-38 đến 3,4E+38, với 7 chữ số

có nghĩa Có thêm hậu tố F sau giá trị

float val = 1.23F;

double 8 Double Kiểu dấu chấm động có độ chính xác

gấp đôi, giá trị xấp xỉ 1.7E308 1.7E+308, với 15,16 chữ số có nghĩa decimal 8 Decimal Chính xác đến 28 con số và giá trị

-thập phân, được dùng trong tính toán tài chính, đòi hỏi hầu tố “m” hay “M”

theo sau giá trị

Kiểu dữ liệu xây dựng sẵn (tt)

bool 1 Boolean Giá trị logic true/ false bool val1 = true;

bool val2 = false;

char 2 Char Ký tự Unicdoe char val = 'h';

Trang 33

Kiểu dữ liệu xây dựng sẵn (tt)

 Kiểu giá trị logic chỉ có thể nhận được giá trị là true hay

false

 Khác với C/C++, một giá trị nguyên không thể gán vào

một biến kiểu logic trong C# và không có bất cứ chuyển

đổi ngầm định nào

Biên dịch: xuất hiện lỗi

Error CS0029 : Cannot implicitly convert type 'int' to 'bool'

Kiểu dữ liệu xây dựng sẵn (tt)

Kiểu dữ liệu ký tự thể hiện các ký tự Unicode

Kýtự thoát là những ký tự đặc biệt bao gồm hai ký tự

liêntiếp trong đó ký tự dầu tiên là dấu chéo ‘\’ Ví dụ,

Trang 34

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

động đảm bảo là không mất thông tin

Từ kiểu nhỏ sang kiểu lớn

short x = 10;

int y = x; // chuyển đổi ngầm định

short x;

int y = 100;

x = y;// Không biên dịch, lỗi !!!

Trang 35

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

short x;

int y = 500;

x = (short) y; // Ép kiểu tường minh, trình biên dịch không báo lỗi

Để chuyển đổi một ký tự sang mã ASCII

sbyte short, int, long, float, double, decimal

byte short, ushort, int, uint, long, ulong, float, double, decimal

short int, long, float, double, decimal

ushort int, uint, long, ulong, float, double, decimal

int long, float, double, decimal

uint long, ulong, float, double, decimal

long, ulong float, double, decimal

float double

char ushort, int, uint, long, ulong, float, double, decimal

Chuyển đổi tường mình

Do lập trình viên chỉ định

Xảy ra khi

Ép từ kiểu lớn qua kiểu nhỏ: có thể mất giá trị

Trang 36

Console.WriteLine (“Result is {0} when 100

is multiplied by number {1}”, result, number);

Chuyển đổi tường minh

Chuyển đổi tường minh

Trang 37

Input / Output trong C#

trong không gian tên System

Console.ReadLine()

Console.WriteLine()

Định danh

Là tên mà người lập trình chỉ định cho các kiểu dữ

liệu, các phương thức, tên biến, hằng, lớp hay đối

tượng

Định danh phải bắt đầu với một ký tự chữ cái hay dấu

gạch dưới,

 các ký tự còn lại phải là ký tự chữ cái, chữ số, dấu gạch dưới.

Ví dụ:

 Định danh đúng: result , _score, footballTeam, plan9

 Định danh sai: result%, footballTeam$, 9plan

Các từ khóa của C#

abstract const extern in operator sbyte throw virtual

as continue false int out sealed true void

base decimal finally interface override set try volatile

bool default fixed internal params short typeof where

break delegate float is partial sizeof uint while

byte do for lock private stackalloc ulong yield

case double foreach long protected static unchecked

catch else get namespace public string unsafe

char enum goto new readonly struct ushort

checked event if null ref switch using

class explicit implicit object return this value

Các từ khóa trong C#

Trang 38

Biến là nơi lưu dữ liệu của chương trình

Dữ liệu của biến

Có thể thay đổi giá trị

Phải khai báo trước khi dùng

Kiểu dữ liệu: dạng lưu trữ dữ liệu của biến

Biến (tt)

chobiến

phải thêm @ trước từ khóa

<Kiểu> tên biến ;

int tuoi;

tuoi = 21 ; Console.WriteLine(tuoi);

Ví dụ

Trang 39

Ví dụ: về khai báo biến

Output: Khởi đầu, myInt: 7 sau khi gán, myInt: 5

Ví dụ: sử dụng từ khóa làm tên biến

<const> <type> <tên hằng> = <giá trị>;

const int DoSoi = 100; // Độ C

const int DoDong = 0; // Độ C

System.Console.WriteLine( “Do dong cua nuoc {0}”, DoDong );

System.Console.WriteLine( “Do soi cua nuoc {0}”, DoSoi );

Trang 41

continue, return, throw

Phân nhánh có điều kiện

{ static void Main( )

{ Console.WriteLine(“Trong Main! Gọi hàm SomeMethod( ) ");

SomeMethod( );

Console.WriteLine(“Quay về Main( ).");

}

static void SomeMethod( )

{ Console.WriteLine(“Xin chao tu SomeMethod!");

}

}

}

Trang 43

if ( i < 10 ) goto lap; // nhãy về nhãn lap return 0;

} }

Trang 44

 Thực hiện câu lệnh trong khi điều kiện vẫn còn đúng

 Câu lệnh breaksẽ thoát ngay khỏi vòng lặp

 Câu lệnh continuesẽ bỏ qua lần lặp hiện tại và thực

hiện lần lặp tiếp theo

{0}”,i);

i++;

} while ( i < 10 ) return 0;

} }

Trang 45

Console.WriteLine(“{0} ”,i);

} else { Console.Write(“{0} ”,i);

Trang 46

khi chia hai số nguyên : 17/4 = 4

Chia cho số thực có kiểu như float, double, hay

decimal thì kết quả chia được trả về là một số

thực

Trang 47

var1 = ++var2; // var1 = 11, var2 = 11

var1 = var2++; //var1 = 10 , var2 = 11

Trang 48

Toán tử quan hệ

Toán tử logic

Độ ưu tiên toán tử

Một ngôi

Trang 49

Độ ưu tiên toán tử

việc sử dụng các thư viện khác nhau từ các

nhà cung cấp

cho ứng dụng khác

dụng namespace trong chương trình:

Trang 50

class WalkMan { }

}

namespace Sony

{ class Television { }

class Walkman { }

} class T21inches {

} }

Trang 52

public T21inches() {

Console.WriteLine ("A

21 inches Television");

} } }// end of namespace Television

}//end of namespace Sony

T14inches Television = new T14inches();

T21inches Television2 = new T21inches();

Ngày đăng: 28/12/2021, 19:24

HÌNH ẢNH LIÊN QUAN

 Sử dụng các thành viên static. - Bài giảng Cơ sở lập trình
d ụng các thành viên static (Trang 3)
 Đa hình. - Bài giảng Cơ sở lập trình
a hình (Trang 3)
 Mô hình phát triển phần mềm - Bài giảng Cơ sở lập trình
h ình phát triển phần mềm (Trang 5)
Tổng quan về lập trình cho MTĐT - Bài giảng Cơ sở lập trình
ng quan về lập trình cho MTĐT (Trang 5)
Mô hình WaterFall (tt) - Bài giảng Cơ sở lập trình
h ình WaterFall (tt) (Trang 11)
Mô hình WaterFall - Bài giảng Cơ sở lập trình
h ình WaterFall (Trang 11)
Mô hình xoắn ốc - Bài giảng Cơ sở lập trình
h ình xoắn ốc (Trang 12)
 Đa hình - Bài giảng Cơ sở lập trình
a hình (Trang 14)
Đa hình - Bài giảng Cơ sở lập trình
a hình (Trang 16)
 Xác nhận mã nguồn an toàn và các hình thức khác của việc chính xác mã nguồn (managed  code),  - Bài giảng Cơ sở lập trình
c nhận mã nguồn an toàn và các hình thức khác của việc chính xác mã nguồn (managed code), (Trang 18)
Ví dụ: phương thức hủy - Bài giảng Cơ sở lập trình
d ụ: phương thức hủy (Trang 81)
Truyền tham số - Bài giảng Cơ sở lập trình
ruy ền tham số (Trang 81)
Phương thức hủy (Destructors) - Bài giảng Cơ sở lập trình
h ương thức hủy (Destructors) (Trang 81)
w