Lê Viết Mẫn -
Các cấu trúc điều khiển 1
v 1.0 - 10/2012
Các cấu trúc điều khiển
(phần 1)
1
Monday, October 22, 12
Lê Viết Mẫn -
Cơ bản NNLT C#
chúng ta đã học
2
1. Lập trình là gì ?
2. C# và .NET
3. Thiết kế thuật toán
4. Những thành phần cơ bản của C#
Monday, October 22, 12
Lê Viết Mẫn -
Cơ bản NNLT C#
Giải bài toán trên máy tính
3
1. Xác định bài toán
2. Thiết kế thuật toán
3. Phân tích thuật toán
4. Cài đặt thuật toán (Lập trình)
5. Kiểm tra / Bắt lỗi
6. [ Sửa lỗi ]
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Nội dung
4
Hàm không tĩnh - Gọi từ đối tượng
•
Hàm tĩnh (từ khoá static) - Gọi từ lớp
Bitmap bm = new Bitmap(20, 20);
Bitmap bm = new Bitmap(20, 20);
bm.Save("bitmap.png");
Console.Write("Please enter a number :");
Monday, October 22, 12
Lê Viết Mẫn -
Cơ bản NNLT C#
.NET Base Class Library
•
Để nghiên cứu về các lớp trong Base Class Library cung cấp
cái gì, lớp nó nằm ở assembly (tập tin .dll nào) nào, cách sử
dụng
•
Sử dụng Object Browser
•
MSDN - />7
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
8
•
Các khai báo using
•
Các khai báo namespace
•
Các khai báo class
9
•
Các khai báo using
•
Các khai báo namespace
•
Các khai báo class
•
Các khai báo hàm và hàm
Main
•
Khai báo biến, sử dụng biến
•
Lời gọi hàm
using System;
namespace Square
{
class Program
{
static void Main(string[] args)
{
double n;
// nhap mot so vao tu ban phim
Console.Write("Please enter a number:");
n = double.Parse(Console.ReadLine());
// in ra binh phuong cua so do
Console.WriteLine("The square of {0} is
{1}", n, Square.square(n));
Console.ReadKey();
}
Console.Write("Please enter a number:");
n = double.Parse(Console.ReadLine());
// in ra binh phuong cua so do
Console.WriteLine("The square of {0} is
{1}", n, Square.square(n));
Console.ReadKey();
}
}
}
Program.cs
•
Cần báo cho chương trình
Visual C# Express (hoặc trình
biên dịch) biết mình cần dùng
assembly nào
•
Trong Visual Studio, trên ngăn
Solution Explorer, nháy phải
chuột lên thư mục References,
nháy mục Add References
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
11
•
Các khai báo using
•
Các khai báo namespace
•
Không cần quan tâm đến việc tạo
lớp mới
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
12
•
Các khai báo using
•
Các khai báo namespace
•
Các khai báo class
•
Các khai báo hàm và hàm
Main
•
Khai báo biến, sử dụng biến
•
Lời gọi hàm
using System;
namespace Square
{
class Program
{
static void Main(string[] args)
{
double n;
// nhap mot so vao tu ban phim
Console.Write("Please enter a number:");
class Program
{
static void Main(string[] args)
{
double n;
// nhap mot so vao tu ban phim
Console.Write("Please enter a number:");
n = double.Parse(Console.ReadLine());
// in ra binh phuong cua so do
Console.WriteLine("The square of {0} is
{1}", n, Square.square(n));
Console.ReadKey();
}
}
}
Program.cs
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Biến và kiểu dữ liệu
•
Phải được khai báo trước khi sử dụng
•
Tên của biến phải tuân theo quy tắc đặt tên
•
Khi khai báo mà không gán dữ liệu thì biến sẽ nhận giá trị mặc
định của kiểu dữ liệu đó
•
Kiểu dữ liệu được phân ra
14
C = (5 / 9) * (F - 32);
C = (F - 32) * (5 / 9);
C = (F - 32) * 5 / 9;
C = (F - 32) * (5f / 9);
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Biến và kiểu dữ liệu
•
Tính tương thích giữa các kiểu dữ liệu
•
dùng khi gán dữ liệu kiểu này cho một biến có kiểu dữ liệu khác
•
(Chuyển đổi ngầm định - implicitly) theo chiều mũi tên thì gán được
•
(Chuyển đổi tường minh) ngược chiều thì phải thực hiện ép kiểu và có thể
xảy ra mất dữ liệu hoặc giá trị không mong muốn
•
Chú ý
•
Không thể khai báo nhiều biến cùng tên trong cùng một phạm vi
•
Có thể khai báo nhiều biến cùng tên trong các phạm vi khác nhau
16
short x = 5;
int y = x;
int i = (int)3.14159;
int i = (int)(3.14159 + 2.7);
uint i = (uint)75;
double x = (double)1f/3;
18
const float PI = 3.14159;
const char NewLine = '\n';
const int PathWidth = 100;
const int SquarePi = Pi * Pi;
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
19
•
Các khai báo using
•
Các khai báo namespace
•
Các khai báo class
•
Các khai báo hàm và hàm
Main
•
Khai báo biến, sử dụng biến
•
Lời gọi hàm
using System;
namespace Square
{
class Program
{
static void Main(string[] args)
{
•
Có thể xuất dữ liệu cho mọi kiểu dữ liệu sử dụng hàm Write
hoặc WriteLine của lớp Console
•
Cú pháp của token giữ chỗ
•
n - số thứ tự của token giữ chỗ, bắt đầu từ 0
•
width - độ rộng của vùng được dùng để in giá trị.
•
Giá trị này là dương - canh lề bên phải, là âm - canh lề bên trái
•
format - ký tự định dạng cho kiểu số
•
precision - số chữ số phần thập phân hoặc số chữ số của số
21
Console.Write(intVal);
Console.Write(intVal.ToString());
Console.Write(“Nhiet do C la ” + c);
Console.Write(“Nhiet do C la {0}”, c);
{n[,width][:format[precision]]}
{0,10:f2}
{1,-5}
{2:d}
{3:x}
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Ký tự định dạng cho số
22
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Biểu thức
24
•
Các câu lệnh trả ra một giá trị
•
Biểu thức số
•
Các toán hạng là có kiểu số hoặc ký tự
•
Riêng với toán tử ++ và thì toán hạng phải là kiểu số hoặc kiểu liệt kê
•
Kiểu của giá trị trả về là kiểu số lớn nhất trong các kiểu của các toán hạng,
nhưng ít nhất phải là int
myVariable = 57; // trả ra giá trị là 57
a = b = c = d = e = 20;
int + long => long
short + int => int
short + short => int
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
25
Biểu thức điều kiện (1/2)
==
so sánh bằng
counter == 0
!=
&& E
2
FALSE
FALSE
FALSE
FALSE
TRUE
FALSE
TRUE
FALSE
FALSE
TRUE
TRUE
TRUE
E
1
E
2
E
1
|| E
2
FALSE
FALSE
FALSE
FALSE
TRUE
TRUE
TRUE
FALSE