using System; class TimSoLonNhat { public static void Main { Console.WriteLine"Nhap vao so luong cac so ma ban se so sanh : "; String soLuong; soLuong = Console.ReadLine; int intSo
Trang 1Thuật toán trong C#, Tổng hơp các thuật toán bằng ví dụ
Kết quả của ví dụ sẽ được in đậm trong dấu này
QUOTE Vidu
và code sẽ có ở đây
CODE
code
Bài mở đầu sẽ gồm các bài toán làm việc với các con số :
Phấn I : Làm việc với số
1.1>Chuyển đổi một số từ cơ số khác sang cơ số 10
QUOTE base2 sang co so 10 la : 3 base8 sang co so 10 la : 15 base10 sang co so 10 la : 110 base16 sang co so 10 la : 4607
CODE
using System;
class TestNumber
{
public static void Main()
{
string base2="11";
string base8="17";
string base10="110";
Trang 2string base16="11FF";
//Cac ham chuyen doi
Console.WriteLine("base2 sang co so 10 la : "+Convert.ToInt32(base2,2));
Console.WriteLine("base8 sang co so 10 la : "+Convert.ToInt32(base8,8));
Console.WriteLine("base10 sang co so 10 la :
"+Convert.ToInt32(base10,10));
Console.WriteLine("base16 sang co so 10 la :
"+Convert.ToInt32(base16,16));
//Dung man hinh
Console.ReadLine();
}
}
1.2 Xác định 1 chuỗi có số hợp lệ hay không ?
QUOTE Nhap vao 1 chuoi bat ki:
2410 Chuoi la 1 so nguyen
QUOTE Nhap vao 1 chuoi bat ki:
PhuongDiep2410 Chuoi khong phai la 1 so nguyen
CODE
using System;
class Numeric
Trang 3//Phuong thuc xem thu co so khong la day
public static bool isNumberic(string str)
{
try
{
str = str.Trim();
int foo = int.Parse(str);
return(true);
}
catch(FormatException)
{
return(false);
}
}
}
class TestNumber
{
public static void Main()
{
Console.WriteLine("Nhap vao 1 chuoi bat ki: ");
string input;
input = Console.ReadLine();
//Su dung phuong thuc da viet
if(Numeric.isNumberic(input)==true)
{
Console.WriteLine("Chuoi la 1 so nguyen");
}
else
{
Console.WriteLine("Chuoi khong phai la 1 so nguyen");
}
Console.ReadLine();
}
}
Trang 4Chú ý:
Nếu bạn muốn xem 1 chuỗi có số dấu chấm động không thì bạn có thể thế dòng code sau
CODE
int foo = int.Parse(str);
thành
CODE
int foo = float.Parse(str);
1.3 Tìm số lớn nhất trong các số nhập vào từ bàn phím
QUOTE Nhap vao so luong cac so ma ban se so sanh :
6 Ban hay nhap vao so thu 1 :
11.1 Ban hay nhap vao so thu 2 :
22.2 Ban hay nhap vao so thu 3 :
33.3 Ban hay nhap vao so thu 4 :
99.9 Ban hay nhap vao so thu 5 :
55.5 Ban hay nhap vao so thu 6 :
66
So lon nhat trong cac so ma ban nhap vao la : 99.9
Trang 5using System;
class TimSoLonNhat
{
public static void Main()
{
Console.WriteLine("Nhap vao so luong cac so ma ban se so sanh : ");
String soLuong;
soLuong = Console.ReadLine();
int intSoLuong = Int32.Parse(soLuong);
float []array = new float[intSoLuong];
for(int i=1;i<=intSoLuong;i++)
{
Console.WriteLine("Ban hay nhap vao so thu {0} : ",i);
String soNhapVao;
soNhapVao = Console.ReadLine();
array[i-1] = float.Parse(soNhapVao);
}
float soLonNhat = 0;
for(int i=1;i<intSoLuong;i++)
{
if(soLonNhat < array[i-1])
{
soLonNhat = array[i-1];
}
}
Console.WriteLine("So lon nhat trong cac so ma ban nhap vao la :
{0}",soLonNhat);
Console.ReadLine();
}
}
Trang 61.4 Tìm Số Lón nhất trong các số nhập vào từ bàn phím mà không dùng đến mảng
QUOTE
Nhap vao so luong cac so ma ban se so sanh :
5 Ban hay nhap vao so thu 1 :
-22.5 Ban hay nhap vao so thu 2 :
22 Ban hay nhap vao so thu 3 :
19 Ban hay nhap vao so thu 4 :
99 Ban hay nhap vao so thu 5 :
-100
So lon nhat la : 99
CODE
using System;
class TimSoLonNhat
{
public static void Main()
{
Console.WriteLine("Nhap vao so luong cac so ma ban se so sanh : ");
String soLuong;
soLuong = Console.ReadLine();
int intSoLuong = Int32.Parse(soLuong);
float max = float.MinValue;
//Console.WriteLine(max);
for(int i=1;i<=intSoLuong;i++)
Trang 7{
Console.WriteLine("Ban hay nhap vao so thu {0} : ",i);
string soNhapVao;
soNhapVao = Console.ReadLine();
float floatSoNhapVao = float.Parse(soNhapVao);
if(max < floatSoNhapVao)
{
max = floatSoNhapVao;
}
}
Console.WriteLine("So lon nhat la : {0}",max);
Console.ReadLine();
}
}
1.5 Tìm 1 số trong 1 mảng
QUOTE Enter a number (between 1 and 7) :
4
4 is the element of arrayToUse found at location 1
CODE
using System;
class Test
{
static void Main()
{
int []arrayToUse = {6,4,7,3,5,1,2};
Console.WriteLine("Enter a number (between 1 and 7) : ");
int noToSearch = Convert.ToInt16(Console.ReadLine());
int indexNo = Array.IndexOf(arrayToUse,noToSearch);
if(indexNo <=6)
{
Trang 8Console.WriteLine("{0} is the element of arrayToUse found at
location {1} ",
noToSearch,indexNo);
}
else
{
Console.WriteLine("Not the element of arrayToUse");
}
Console.ReadLine();
}
}
Phần II: Chuỗi và kí tự
2.1 Tìm vị trí số lần xuất hiện của một chuỗi trong chuỗi khác :
QUOTE Found item at position: 4 Found item at position: 12 System.Int32[]
CODE
using System;
using System.Collections;
class TestString
{
public static int[] FindAll(string matchStr, string searchedStr,int
startPos)
{
int foundPos = -1;
Trang 9int count =0;
ArrayList foundItems = new ArrayList();
do
{
foundPos = searchedStr.IndexOf(matchStr,startPos);
if(foundPos>-1)
{
startPos=foundPos+1;
count++;
foundItems.Add(foundPos);
Console.WriteLine("Found item at position:
"+foundPos.ToString());
}
} while(foundPos >-1 && startPos<searchedStr.Length);
return((int[])foundItems.ToArray(typeof(int)));
}
}
class TestNumber
{
public static void Main()
{
int[] a = TestString.FindAll("Red","BlueRedGreenRed",0);
Console.WriteLine(a);
Console.ReadLine();
}
}
2.2 Trừ ngày tháng
QUOTE
Bai Nay Se tru ngay thang dau tien ma ban nhap cho ngay thang nhap lan 2 cho nen nhap lan 1 nho hon ra so am rang chiu:
Ket qua : Nhap ngay1:
Trang 1016 Nhap thang1:
05 Nhap nam1:
1989 Nhap ngay2:
19 Nhap thang2:
12 Nhap nam2:
1988 16/05/1989 - 19/12/1988 = 147
CODE
using System;
namespace Test
{
class ChuyenDoi
{
public int NamNhuan(int ngay,int thang,int nam)
{
int tongSoNgay;
int n1=ngay;
int n2=0;
int n3;
int soNamNhuan;
soNamNhuan = nam/4;
n3 = (nam*365)+soNamNhuan;
switch(thang)
{
case 1:
n2=31;
break;
case 2:
Trang 11n2=31+29;
break;
case 3:
n2=31+29+31;
break;
case 4:
n2=31+29+31+30;
break;
case 5:
n2=31+29+31+30+31;
break;
case 6:
n2=31+29+31+30+31+30;
break;
case 7:
n2=31+29+31+30+31+30+31;
break;
case 8:
n2=31+29+31+30+31+30+31+31;
break;
case 9:
n2=31+29+31+30+31+30+31+31+30;
break;
case 10:
n2=31+29+31+30+31+30+31+31+30+31;
break;
case 11:
n2=31+29+31+30+31+30+31+31+30+31+30;
break;
case 12:
n2=31+29+31+30+31+30+31+31+30+31+30+31;
break;
}
return tongSoNgay=n1+n2+n3;
/*Console.WriteLine(tongSoNgay);
Console.ReadLine();*/
}
Trang 12public int NamThuong(int ngay,int thang,int nam)
{
int tongSoNgay;
int n1=ngay;
int n2=0;
int n3;
int soNamNhuan;
soNamNhuan = nam/4;
n3 = (nam*365)+soNamNhuan;
switch(thang)
{
case 1:
n2=31;
break;
case 2:
n2=31+28;
break;
case 3:
n2=31+28+31;
break;
case 4:
n2=31+28+31+30;
break;
case 5:
n2=31+28+31+30+31;
break;
case 6:
n2=31+28+31+30+31+30;
break;
case 7:
n2=31+28+31+30+31+30+31;
break;
case 8:
n2=31+28+31+30+31+30+31+31;
break;
case 9:
Trang 13n2=31+28+31+30+31+30+31+31+30;
break;
case 10:
n2=31+28+31+30+31+30+31+31+30+31;
break;
case 11:
n2=31+28+31+30+31+30+31+31+30+31+30;
break;
case 12:
n2=31+28+31+30+31+30+31+31+30+31+30+31;
break;
}
return tongSoNgay=n1+n2+n3;
/*Console.WriteLine(tongSoNgay);
Console.ReadLine();*/
}
}
class Class1
{
static void Main(string[] args)
{
ChuyenDoi obj = new ChuyenDoi();
int s,s1,s2;
Console.WriteLine("Bai Nay Se tru ngay thang dau tien ma ban nhap
cho ngay ");
Console.WriteLine("thang nhap lan 2 cho nen nhap lan 1 nho hon ra so
am rang chiu:");
Console.WriteLine("Nhap ngay1: ");
string sngay1;
sngay1 = Console.ReadLine();
int ngay1 = Int32.Parse(sngay1);
Console.WriteLine("Nhap thang1: ");
string sthang1;
Trang 14sthang1 = Console.ReadLine();
int thang1 = Int32.Parse(sthang1);
Console.WriteLine("Nhap nam1: ");
string snam1;
snam1 = Console.ReadLine();
int nam1 = Int32.Parse(snam1);
if(nam1%4==0)
{
s1 = obj.NamNhuan(ngay1,thang1,nam1);
}
else
{
s1 = obj.NamThuong(ngay1,thang1,nam1);
}
Console.WriteLine("Nhap ngay2: ");
string sngay2;
sngay2 = Console.ReadLine();
int ngay2 = Int32.Parse(sngay2);
Console.WriteLine("Nhap thang2: ");
string sthang2;
sthang2 = Console.ReadLine();
int thang2 = Int32.Parse(sthang2);
Console.WriteLine("Nhap nam2: ");
string snam2;
snam2 = Console.ReadLine();
int nam2 = Int32.Parse(snam2);
if(nam2%4==0)
{
s2 = obj.NamNhuan(ngay2,thang2,nam2);
}
else
{
s2 = obj.NamThuong(ngay2,thang2,nam2);
}
s=s1-s2;
Trang 15Console.Write("{0}/{1}/{2} ",ngay1,thang1,nam1);
Console.Write("- {0}/{1}/{2}",ngay2,thang2,nam2);
Console.WriteLine(" = {0}",s);
Console.ReadLine();
}
}
}
1.3 Xử lí kí tự nhập vào từ bàn phím - Mô phỏng nguyên tắc của trụ đèn giao thông 1
cách đơn giản (Ngoài thực tế thì phức tạp hơn)
QUOTE Nhap vao mot tin hieu: Diep Tin hieu nhan duoc: Diep -bip bip bip
Nhap vao mot tin hieu: aaaaaa Tin hieu nhan duoc: aaaaaa
-bip bip bip
Nhap vao mot tin hieu: 0 Tin hieu nhan duoc: 0 Tat ca dieu tot!
Nhap vao mot tin hieu: T Tin hieu nhan duoc: T Ngung xu ly! Thoat
CODE
using System;
public class TrafficSignal
{
public static int Main()
Trang 16{
string signal = "0"; // Kh i t o tín hi uở ạ ệ
// b t ắ đầu chu trình x lý tín hi uử ệ
while ( signal != "X")
{
//nh p tín hi uậ ệ
Console.Write("Nhap vao mot tin hieu: ");
signal = Console.ReadLine();
// xu t tín hi u hi n th iấ ệ ệ ờ
Console.WriteLine("Tin hieu nhan duoc: {0}", signal);
// ph n x lý tín hi uầ ử ệ
if (signal == "T")
{
// Tín hi u thoát ệ được g iở
// l u l i s ki n và thoátư ạ ự ệ
Console.WriteLine("Ngung xu ly! Thoat\n");
break;
}
if ( signal == "0")
{
// Tín hi u nh n ệ ậ được bình thường // L u l i s ki n và ti pư ạ ự ệ ế
t cụ
Console.WriteLine("Tat ca dieu tot!\n");
continue;
}
// Th c hi n m t s hành ự ệ ộ ố động nào óđ
// và ti p t cế ụ
Console.WriteLine(" -bip bip bip\n");
}
return 0;
}
}