kasamhamitakrist
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: AzTruyen.Top