kasamhamitakrist

Màu nền
Font chữ
Font size
Chiều cao dòng

Sử dụng ListBox và mảng

Viết chương trình cho phép tạo và hiển thị dãy n số nguyên ngẫu nhiên, với n nhập trước. Sử dụng cấu trúc mảng thực hiện tiếp các yêu cầu sau (có thể làm một/ nhiều yêu cầu thành một bài):

Tìm giá trị lớn nhất/ nhỏ nhất của dãy. In kết quả.

Tính tổng các phần tử trong dãy. In kết quả

Xác định giá trị trung bình của dãy. In kết quả.

Sắp xếp dãy theo thứ tăng/ giảm dần. In dãy kết quả. Nhập số nguyên x, chèn x vào dãy sao cho vẫn đảm bảo thứ tự đã sắp. In dãy kết quả.

Tách dãy ban đầu thành 2 dãy mới: dãy các số chẵn và dãy các số lẻ. In các dãy kết quả.

Tính tổng các số lẻ/ chẵn trong dãy. In kết quả.

Cho biết dãy có bao nhiêu số lẻ/ chẵn trong dãy. In kết quả.

Nhập vào 2 số nguyên x và p (0 ≤ p ≤ n). Chèn x vào vị trí thứ p trong dãy. In dãy kết quả.

Nhập vào số nguyên x. Cho biết vị trí của giá trị đầu tiên trong dãy bằng số x nếu có, ngược lại thì hiển thị "Day khong ton tai so x" và thêm x vào cuối dãy.

Xóa bỏ các giá trị trùng lắp trong dãy (nếu có nhiều giá trị bằng nhau thì chỉ giữ lại giá trị đầu tiên). In dãy kết quả.

Chuỗi ký tự

Viết chương trình cho phép nhập chuỗi ký tự. Thực hiện tiếp các yêu cầu sau (có thể làm một/ nhiều yêu cầu thành một bài):

Xóa bỏ các ký tự trắng thừa trong chuỗi. In chuỗi kết quả.

Cho biết chuỗi có bao nhiêu từ. In kết quả

Xác định từ dài nhất/ ngắn nhất trong chuỗi. In các từ kết quả.

Đổi chuỗi thành chữ in hoa/ in thường/ tiêu đề. In các chuỗi kết quả.

Nhập vào một từ w. Cho biết vị trí của từ đầu tiên trong chuỗi giống w nếu có, ngược lại thì hiển thị "Khong ton tai tu w trong chuoi".

Tách chuỗi ban đầu thành 2 chuỗi mới: chuỗi các từ ở vị trí chẵn và chuỗi các từ ở vị trí lẻ. In các chuỗi kết quả.

Xóa bỏ tất cả các ký tự trắng trong chuỗi, xác định xem chuỗi nhận được có đối xứng nhau hay không?

Buoi 8: list box

Buoi 9-10: mang

Buoi 11-12: chuoi ky tu

Thi: 2 cau buoi 13

list box + mang 1 chieu

chuoi ky tu

.count  so phan tu (n)

Trong danh sach ~ mang n phan tu: 0 .. n-1

.items.add(chuoi)

.clear

.items[i]  truy xuat toi phan tu i

.items[3]

Them

Neu nhan gia tri thanh cong thi

Them vao ds ;

Nguoc lai

Thong bao loi ;

Xoa gia tri;

Dat con tro vao edit;

Thi hanh

Count:=0;

Sum:=0;

N:=lstDS.Count;

Xet lan luot tung gia tri trong DS (For i:=0 to n-1 do)

Begin

Temp:=StrToInt( lstDS.items[i] );

Neu temp>10 va temp <= 20 thi

Begin

Inc(count);

Sum := sum + temp ;

End;

End;

In ket qua;

1)nhap listbox...dem bao nhieu so >10 va <=20

va tong cua chu'ng la

procedure TForm1.btnThemClick(Sender: TObject);

Var

so:integer;

begin

If TryStrToInt(edtSo.Text,so) then

lstDS.Items.Add(edtSo.Text)

Else

Showmessage('Loi nhap gia tri!');

edtSo.Clear;

edtSo.SetFocus;

end;

procedure TForm1.edtSoKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

If Key=13 then

btnThem.Click;

end;

procedure TForm1.btnThucThiClick(Sender: TObject);

Var

n,i,temp,count,sum:integer;

begin

n:=lstDS.Count;

count:=0;

sum:=0;

if n > 0 then

begin

For i:=0 to n-1 do

Begin

temp:=StrToInt(lstDS.Items[i]);

If (temp >10) and (temp <= 20) then

Begin

inc(count);

sum:=sum + temp;

End;

End;

edtSoPT.Text := IntToStr(count) ;

edtTong.Text := IntToStr(sum) ;

end

else

showmessage('Loi DS rong!');

end;

2)thiet ke tinh tong

Khai bao bien tong toan cuc

var

Form1: TForm1;

tong:integer;

implementation

{$R *.dfm}

Khoi tao cho tong khi Form duoc tao

D_Click len nen Form  FormCreate

procedure TForm1.FormCreate(Sender: TObject);

begin

tong:=0;

end;

Them

Neu nhan gia tri so thanh cong va tong + so <= 20 thi

Begin

Cong them vao tong ;

Them so vao ds ;

In gia tri tong ;

End

Nguoc lai

Thong bao loi ;

Xoa gia tri;

Dat con tro vao edit;

procedure TForm1.btnThemClick(Sender: TObject);

Var

so:integer;

begin

If (TryStrToInt(edtSo.Text,so)) and (tong + so <= 20) then

begin

tong:=tong + so;

lstDS.Items.Add(edtSo.Text) ;

edtTong.Text:=IntToStr(tong) ;

end

Else

Showmessage('Loi nhap gia tri hoac tong vuot 20!');

edtSo.Clear;

edtSo.SetFocus;

end;

procedure TForm1.edtSoKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

If Key=13 then

btnThem.Click;

end;

Bai 1: tao day n so nguyen ngau nhien, tach day ban dau thanh hai day moi

Tao day so

Neu (Nhan n thanh cong) va (n > 0) thi

Begin

Khoi tao bo tao so ngau nhien ;

Xoa DS ban dau ;

Voi moi i tu 0 toi n-1 thuc hien

Them so ngau nhien vao DS ;

End

Nguoc lai

Thong bao loi nhap n ;

Var

n,i:integer;

begin

If (TryStrToInt(edtN.Text,n)) and (n > 0) Then

Begin

Randomize;

lstDayBD.Clear;

For i:=0 to n-1 do

lstDayBD.Items.Add(IntToStr(Random(50)));

End

Else

Showmessage('Loi nhap n!');

end;

Tach day so ban dau thanh 2 day moi: day cac so chan va day cac so le

Xoa DS chan ;

Xoa DS le ;

n := so phan tu trong day ban dau ;

Neu n > 0 thi

Voi moi i tu 0 toi n-1 thuc hien

Begin

So := gia tri thu i trong day ban dau;

Neu so la so chan thi

Them so vao DS chan

Nguoc lai

Them so vao DS le ;

End

Nguoc lai

Thong bao loi DS rong ;

Var

n,i,so:integer;

begin

lstDayChan.Clear;

lstDayLe.Clear;

n:=lstDayBD.Count;

If n > 0 then

For i:=0 to n-1 do

Begin

so:=StrToInt(lstDayBD.Items[i]);

If so mod 2 = 0 then

lstDayChan.Items.Add(IntToStr(so))

Else

lstDayLe.Items.Add(IntToStr(so));

End

Else

Showmessage('DS rong!');

end;

Bai 2: tao day n so nguyen ngau nhien, chuyen danh sach vao mang, sap xep tang dan, in danh sach ket qua

Tao day so

Neu (Nhan n thanh cong) va (n > 0) thi

Begin

Khoi tao bo tao so ngau nhien ;

Xoa DS ban dau ;

Voi moi i tu 0 toi n-1 thuc hien

Them so ngau nhien vao DS ;

End

Nguoc lai

Thong bao loi nhap n ;

Var

n,i:integer;

begin

If (TryStrToInt(edtN.Text,n)) and (n > 0) Then

Begin

Randomize;

lstDayBD.Clear;

For i:=0 to n-1 do

lstDayBD.Items.Add(IntToStr(Random(50)));

End

Else

Showmessage('Loi nhap n!');

end;

Chuyen danh sach vao mang, sap xep tang dan, in danh sach ket qua

Var

A:Array[0..19] of integer;

n,i,j,temp:integer;

begin

n:=lstDayBD.Count;

If n > 0 then

Begin

For i:=0 to n-1 do

A[i] := StrToInt(lstDayBD.Items[i]) ;

For i:=0 to n-2 do

For j:=i+1 to n-1 do

If a[i] > A[j] then

Begin

temp:=A[i];

A[i]:=A[j];

A[j]:=temp;

End;

For i:=0 to n-1 do

lstDayTang.Items[i] := IntToStr(A[i]) ;

End

Else

Showmessage('Loi DS rong!');

end;

3)tog dem chan le

Tao day so

Neu (Nhan n thanh cong) va (n > 0) thi

Begin

Khoi tao bo tao so ngau nhien ;

Xoa DS ban dau ;

Voi moi i tu 0 toi n-1 thuc hien

Them so ngau nhien vao DS ;

End

Nguoc lai

Thong bao loi nhap n ;

Var

n,i:integer;

begin

If (TryStrToInt(edtN.Text,n)) and (n > 0) Then

Begin

Randomize;

lstDayBD.Clear;

For i:=0 to n-1 do

lstDayBD.Items.Add(IntToStr(Random(50)));

End

Else

Showmessage('Loi nhap n!');

end;

Chuyen danh sach vao mang, sap xep tang dan, in danh sach ket qua

Var

A:Array[0..19] of integer;

n,i,j,temp:integer;

begin

n:=lstDayBD.Count;

If n > 0 then

Begin

For i:=0 to n-1 do

A[i] := StrToInt(lstDayBD.Items[i]) ;

For i:=0 to n-2 do

For j:=i+1 to n-1 do

If a[i] > A[j] then

Begin

temp:=A[i];

A[i]:=A[j];

A[j]:=temp;

End;

For i:=0 to n-1 do

lstDayTang.Items[i] := IntToStr(A[i]) ;

End

Else

Showmessage('Loi DS rong!');

end;

CHUOI KI TU

Xoa khoang trang thua

Var

st:String[30];

begin

st:=edtChuoiBD.Text;

st:=Trim(st);

while pos(#32#32,st) > 0 do

Delete(st,pos(#32#32,st),1);

edtDaXoaKT.Text:=st;

Chuyen doi chu thuong/ chu in hoa/ chu tieu de

Var

st:String[30];

i:Integer;

begin

st:=edtChuoiBD.Text;

st:=Trim(st);

while pos(#32#32,st) > 0 do

Delete(st,pos(#32#32,st),1);

st:=LowerCase(st);

edtChuThuong.Text:=st;

st:=UpperCase(st);

edtChuHoa.Text:=st;

st:=LowerCase(st);

st[1]:=UpCase(st[1]);

For i:=2 to Length(st) do

If st[i]=#32 then

st[i+1]:=UpCase(st[i+1]);

edtChuTD.Text:=st;

end;

Chuyen vao mang, cat lay hai tu cuoi

Var

st,st1:String[30];

i,n:Integer;

A:Array[0..9] of String;

begin

st:=edtChuoiBD.Text;

st:=Trim(st);

while pos(#32#32,st) > 0 do

Delete(st,pos(#32#32,st),1);

st:=LowerCase(st);

st1:=st;

st1:=st1+#32;

n:=0;

While Length(st1) > 0 do

Begin

a[n] := Copy(st1, 1, pos(#32,st1)-1);

Delete(st1, 1, pos(#32,st1));

n:=n+1;

End;

edtHaiTuCuoi.Text:=a[n-2] + #32 + a[n-1];

end;

Bạn đang đọc truyện trên: Truyen4U.Pro