Tải bản đầy đủ (.pdf) (10 trang)

Bài giảng Cơ sở lập trình: Chương 2 - Phạm Thanh An

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (355.58 KB, 10 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

4/10/2012



Chương 2



<b>Nền tảng ngôn ngữ C#</b>



<b>Giảng viên: ThS. Phạm Thanh An</b>



Khoa công

nghệ thông tin



Đạ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.



Biến và hằng.



Biểu thức.



Câu lệnh.



Toán tử.



Namespace.



Các chỉ dẫn biên dịch.



Xử lý ngoại lệ.



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




<b>String</b> <b>Array</b> <b>ValueType</b> <b>Exception</b> <b>Delegate</b> <b>Class1</b>


<b>Multicast</b>
<b>Delegate</b> <b>Class2</b>


<b>Class3</b>
<b>Object</b>


<b>Enum1</b>


<b>Structure1</b>
<b>Enum</b>


<b>Primitive types</b>


Boolean
Byte
Int16
Int32
Int64
Char


Single
Double
Decimal
DateTime


<i><b>System-defined types</b></i>
<i><b>User-defined types</b></i>



<b>Delegate1</b>


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

4/10/2012



Kiểu dữ liệu



C# là một ngữ mạnh về 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 (tt)



C# phân tập hợp kiểu dữ liệu này thành



hai loại:



Kiểu dữ liệu giá trị (value type):

<b>int, char , </b>




<b>và structures </b>



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



<b>classes, interfaces, arrays và strings</b>



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


<b>KiểuC#</b> <b>Số </b>


<b>Byte</b>
<b>Kiểu </b>
<b>.NET</b>


<b>Mơ tả</b> <b>Ví dụ</b>


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


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

4/10/2012



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


<b>KiểuC#</b> <b>Số </b>


<b>Byte</b>


<b>Kiểu </b>
<b>.NET</b>


<b>Mơ tả</b> <b>Ví dụ</b>


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


18446744073709551615


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


<b>Kiểu </b>


<b>C#</b>
<b>Số </b>
<b>Byte</b>


<b>Kiểu </b>
<b>.NET</b>


<b>Mô tả</b> <b>Ví dụ</b>


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 tố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)


<b>Kiểu C#</b> <b>Số </b>


<b>Byte</b>
<b>Kiểu </b>
<b>.NET</b>


<b>Mơ tả</b> <b>Ví dụ</b>


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

4/10/2012



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


<b>Ghi chú:</b>



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



<i>Error CS0029 : Cannot implicitly convert type 'int' to 'bool</i>

'



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



Bao

gồm các ký tự đơn giản, ký tự theo mã Unicode


và các ký

tự thoát khác được bao trong những dấu


nháy

đơn



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


liên

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


\t là

dấu tab



Giá trị mặc định của kiểu dữ liệu



<b>Kiểu</b>

<b>Giá trị mặc định</b>



Numeric (int,float,short)

0 hoặc 0.0



Bool

false



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

4/10/2012




Các ký tự đặc biệt



<b>Ký tự</b>

<b>Ý nghĩa</b>



\'

Dấu nháy đơn



\"

Dấu nháy kép



\\

Dấu chéo (Backslash)



\0

Ký tự Null



\a

Alert



Các ký tự đặc biệt (tt)



<b>Ký tự</b>

<b>Ý nghĩa</b>



\b

Backspace



\f

Sang trang Form feed



\n

Dòng mời (Newline)



\r

Đầu dòng (Carriage return)



\t

Tab ngang (Horizontal tab)



\v

Tab dọc (Vertical tab)




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



Chuyển đổi kiểu dữ liệu này qua kiểu dữ liệ khác



Có 2 cách: chuyển đổi tường minh và ngầm định



Chuyển đổi ngầm định được thực hiện một cách tự


độ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

Trường hợp này không thực hiện



short x;
int y = 100;


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

4/10/2012



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



short x;


int y = 500;



x = (short) y; //

<i>Ép kiểu tường minh, trình biên dịch khơng báo lỗi</i>


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




(int)'A‘



Để chuyển một số sang ký tự ta thực



hiện như sau:



(char)65



Chuyển đổi ngầm định



<b>From</b> <b>To</b>


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ị



doublex = 74.86;


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

4/10/2012



Ví dụ sử dụng kiểu dữ liệu


Khai bao trước khi



sử dụng



Gán giá trị trước


khi sử dụng



<b>public class App</b>
<b>{</b>


<b>public static void Main()</b>
<b>{</b>


<b>int width, height;</b>
<b>width = 2;</b>
<b>height = 4;</b>


<b>int area = width * height;</b>
<b>int x;</b>


<b>int y = x * 2;</b>


<b>...</b>


<b>}</b>
<b>}</b>


Khai báo


Khai báo + khởi đầu


Lỗi


Ví dụ



using System;


class TestDefaultValues
{


static void Main()
{


int number, result;
<b>number=5;</b>


result=100 * number;


<b>Console.WriteLine (“Result is {0} when 100 </b>
<b>is multiplied by number {1}”, result, number);</b>


}


}


Ví dụ: chuyển đổi kiểu dữ liệu



<b>int i = 5;</b>
<b>double d = 3.2;</b>
<b>string s = "496";</b>
<b>d = i;</b>


<b>i = (int) d;</b>


<b>i = System.Convert.ToInt32(s);</b>
Chuyển đổi ngầm định


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

4/10/2012



Input / Output trong C#



Sử dụng các phương thức của lớp Console



trong không gian tên System



Console.ReadLine()


Console.WriteLine()



<b>Định danh</b>



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 khơng trùng với từ khóa của C#



Đị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.

C# phân biệt chữ hoa và chữ thường



Ví dụ:



 Định danh đúng:

result , _score, footballTeam, plan9



 Định danh sai:

result%, footballTeam$, 9plan



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



<b>abstract</b> <b>const</b> <b>extern</b> <b>in</b> <b>operator</b> <b>sbyte</b> <b>throw</b> <b>virtual</b>
<b>as</b> <b>continue</b> <b>false</b> <b>int</b> <b>out</b> <b>sealed</b> <b>true</b> <b>void</b>
<b>base</b> <b>decimal</b> <b>finally</b> <b>interface</b> <b>override</b> <b>set</b> <b>try</b> <b>volatile</b>
<b>bool</b> <b>default</b> <b>fixed</b> <b>internal</b> <b>params</b> <b>short</b> <b>typeof</b> <b>where</b>
<b>break</b> <b>delegate</b> <b>float</b> <b>is</b> <b>partial</b> <b>sizeof</b> <b>uint</b> <b>while</b>
<b>byte</b> <b>do</b> <b>for</b> <b>lock</b> <b>private</b> <b>stackalloc ulong</b> <b>yield</b>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

4/10/2012



Biến



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




Dữ liệu của biến



Nằm trong bộ nhớ vật lý (physical RAM)



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



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



Định danh: tên để đại diện cho biến



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



Biến (tt)



Bạn có thể khai báo kết hợp khởi đầu giá trị



cho

biến



Tên

biến không được trùng với từ khóa của



C#,

nếu muốn sử dụng từ khóa làm tên biến



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



Khai báo

biến:



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



int tuoi;
tuoi = 21 ;



Console.WriteLine(tuoi);


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

4/10/2012



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



using System;


using System.Collections.Generic;
using System.Text;


namespace InitializingVariables
{ class Values


{ static void Main( )
{
int myInt = 7;


System.Console.WriteLine(“Khởi đâu, myInt: {0}", myInt);
myInt = 5;


System.Console.WriteLine(“Sau khi gán, myInt: {0}", myInt);
}


}
}


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



using System;
class VariableDemo
{


public static void Main()
{


string @string;


@string= ”Su dung tu khoa lam ten bien”;
Console.WriteLine (@string);


}
}


Hằng



Hằng là một biến mà giá trị của nó khơng thể



thay đổi



Phải gán giá trị ngay khi khai báo



Khai báo hằng



</div>

<!--links-->

×