baby14170311

New Member

Download miễn phí Các ví dụ nâng cao về mảng





Ví dụ 11.6:
Nhập các ký tự từ bàn phím, đổi thành chữ thường nếu là chữ hoa, và
lưu vào một mảng, qúa trình kết thúc khi nhập ký tự trắng. Cho biết có bao
nhiêuký tự đã nhập, trong đó có bao nhiêu chữ a, b, c, d mỗi loại.



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

CÁC VÍ DỤ NÂNG CAO VỀ MẢNG
Ví dụ 11.5:
Nhập một danh sách N (N<50) học sinh gồm họ tên và điểm thi môn toán.
Hãy phân loại các học sinh như sau : loại giỏi nếu điểm toán 9, loại khá
nếu 7 điểm toán< 9, loại trung bình nếu 5 điểm toán< 7, và loại kém
nếu điểm toán< 5.
In danh sách lên màn hình, mỗi người trên một dòng, gồm họ tên, điểm
toán và phân loại. Yêu cầu danh sách được sắp thứ tự theo trật tự giảm của
điểm toán.
Ðếm xem có bao nhiêu em có điểm toán bằng 10 ?.
PROGRAM VIDU11_5;
Uses CRT;
Type
Kmang1 = Array[1..50] of String[18];
Kmang2 = Array[1..50] of Real;
Var
i, j, N, Dem10 : Integer;
Hoten, Loai: Kmang1;
Dtoan : Kmang2;
St: String[18];
z: Real;
Begin
Clrscr;
Repeat
Write(‘ Nhập số lượng học sinh : ‘);
Readln(N);
Until (N>0) and ( N<51);
For i:=1 to N do { nhập danh sách hs }
begin
Write(‘Nhập họ và tên của hs thứ ‘, i , ‘ : ‘);
Readln(Hoten);
Write(‘Nhập điểm toán của hs thứ ‘, i , ‘ : ‘);
Readln(Dtoan);
end;
{ sắp xếp giảm theo điểm toán}
For i:=1 to N-1 do
For j:=i+1 to N do
If Dtoan begin { hoán đổi Dtoan và họ tên }
z:=Dtoan;
Dtoan:=Dtoan[j];
Dtoan[j]:=z;
St:=Hoten;
Hoten:=Hoten[j];
Hoten[j]:=St;
end;
{ Phân loại }
For i:=1 to N do
If Dtoan >= 9 then Loai:=‘Gioi’
else
If Dtoan >=7 then Loai:=‘Kha’
else
If Dtoan>=5 then Loai:=‘Trung binh’
else
Loai :=‘Kem’;
Writeln(‘ Danh sách hs đã sắp giảm theo Ðtoán là: ‘);
For i:=1 to N do
Writeln(Hoten: 18, #32, Dtoan:5:1, #32, Loai) ;
{ Ðếm số em được điểm 10}
Dem10 := 0;
For i:=1 to N do
if Dtoan=10 then Dem10 :=Dem10 +1;
Writeln(‘ Số em được điểm 10 là :’ , Dem10);
Readln;
End.
Chạy
Chép tập tin nguồn
Trong chương trình, ta sử dụng ba mảng: Hoten, Loai và Dtoan với quy
ước phần tử thứ i của các mảng này chứa các thông tin về cùng một người:
đó là học sinh thứ i trong danh sách. Vì thế, khi sắp xếp mảng Dtoan giảm
dần, mỗi khi có sự đổi chỗ Dtoan với Dtoan[j] thì tương ứng cũng phải đổi
chỗ Hoten với Hoten]j].
Ví dụ 11.6:
Nhập các ký tự từ bàn phím, đổi thành chữ thường nếu là chữ hoa, và
lưu vào một mảng, qúa trình kết thúc khi nhập ký tự trắng. Cho biết có bao
nhiêu ký tự đã nhập, trong đó có bao nhiêu chữ a, b, c, d mỗi loại.
PROGRAM VIDU11_6;
{ Ðếm ký tự a, b, c, d }
Var
Kytu : Array[1..20] of Char ;
N, i, Max : Integer;
ch : Char;
Dem : Array[‘a’..’d’] of Integer;
Begin
i:=0;
Repeat
i:=i+1;
Write(‘Nhập ký tự thứ ‘ , i , ‘: ‘);
Readln(ch);
{ đổi ra chữ thường }
If ch IN [‘A’..’Z’] then ch:=Chr( Ord(ch) + 32 );
Kytu:= ch;
Until ( ch= #32) or (i=20);
N:=i;
{ Ðếm các chữ a, b, c, d }
For ch:=‘a’ to ‘d’ do Dem[ch]:=0;
For i:=1 to N do
begin
ch:=Kytu;
If ch IN [‘a’..’d’] then Dem[ch] := Dem[ch]+1; {24}
end;
Writeln(‘ Số ký tự đã nhập là :’ , N );
For ch:=‘a’ to ‘d’ do writeln(‘ Số chữ ‘, ch, ‘=‘, Dem[ch]);
Readln;
End.
Chạy
Chép tập tin nguồn
Trong chương trình, câu lệnh ở dòng {24}:
If ch IN [‘a’..’d’] then Dem[ch] := Dem[ch]+1;
tương đương với lệnh ghép sau:
begin
If ch =‘a’ then Dem[‘a’] := Dem[‘a’]+1;
If ch =‘b’ then Dem[‘b’] := Dem[‘b’]+1;
If ch =‘c’ then Dem[‘c’] := Dem[‘c’]+1;
If ch =‘d’ then Dem[‘d’] := Dem[‘d’]+1;
end;
Dùng bốn lệnh này thì dễ hiểu hơn song bài toán sẽ không phát triển được
khi ta phải đếm nhiều loại ký tự, chẳng hạn như đếm chữ a, đếm chữ b, ...,
đếm chữ z.
Ví dụ 11.7:
Nhập ma trận A cấp NxM, đếm xem mỗi hàng có bao nhiêu số 0, những
hàng nào có nhiề? số 0 nhất.
Ta khai báo Dem là một mảng gồm N phầ? tử với quy ước Dem lưu số
lượng số 0 của hàng i. Tìm Max là số lớn nhất trong mảng Dem. Những
hàng i nào có Dem =Max là hàng có nhiều số không nhất.
Dưới đây là chương trình cụ thể :
PROGRAM VIDU11_7 ;
{ Tìm trong ma trận các hàng có nhiều số 0 nhất }
Type
Kmang= Array[1..10, 1..10] of Real;
Var
A : Kmang;
i, j, N, M : Integer;
Dem : Array[1..10] of Integer ;
Max : Integer ;
Begin
Repeat
Write(‘Nhập số hàng N, số cột M : ‘);
Readln(N, M);
Until ( N>0) and ( N0) and (M<11);
For i:=1 to N do
For j:=1 to M do
begin
Write(‘Nhập A[‘, i, ‘,’ , j , ‘]: ‘);
Readln(A[i,j]);
end;
{ In ma trân A }
Writeln(‘ Ma tran A la:’);
For i:=1 to N do
begin
For j:=1 to M do Write(A[i, j]:4:0);
Writeln;
end;
{ Ðếm số 0 trong từng hàng}
For i:=1 to N do
begin
Dem:=0;
For j:=1 to M do if A[i, j]=0 then Inc(Dem);
Writeln(‘Số số 0 của hàng ‘, i, ‘ là: ‘ , Dem);
end;
{ Tìm số lớn nhất của mảng Dem }
Max:=Dem[1];
For i:=1 to N do
if Max< Dem then Max:=Dem;
Writeln(‘ Số 0/hàng nhiều nhất = ‘, Max);
{ Tìm các hàng có nhiều số 0 nhất}
If Max =0 then writeln(‘ Không hàng nào có số 0 ‘)
else
For i:=1 to N do if Dem=Max then
writeln(‘ Hàng nhiều số 0 nhất là ‘, i:3 );
Readln;
End.
Chạy
Chép tập tin nguồn
Ví dụ 11.8: Hoán đổi hai hàng h và k của ma trận A
Hàng h có dạng : A[h,1], A[h,2], ..., A[h,M]
Hàng k có dạng : A[k,1], A[k,2], ..., A[k,M]
Việc đổi hàng h và hàng k được quy về việc đổi chỗ từng cặp phần tử:
A[h,1] với A[k,1], A[h,2] với A[k,2],..., A[h,M] với A[k,M], tức là đổi chỗ
A[h,j] và A[k,j] với mọi j=1, 2, ..., M:
For j:=1 to M do
begin { đổi chỗ A[h,j] với A[k,j] }
z:=A[h,j];
A[h,j]:=A[k,j];
A[k,j]:=z;
end;
Ở đây z là biến trung gian cùng kiểu dữ liệu với các phần tử của ma trận
A.
các bạn hãy viết chương trình cho ví dụ này.
...
 

Kiến thức bôn ba

Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D Ảnh hưởng của yếu tố văn hóa, ngôn ngữ đến các hoạt động marketing thương mại quốc tế? Hãy cho ví dụ và phân tích Luận văn Kinh tế 0
F Hoàn thiện kế toán nghiệp vụ bán hàng ở các doanh nghiệp thương mại trong điều kiện nền kinh tế thị trưòng - Lấy ví dụ tại công ty Vật Liệu Điện - Dụng Cụ Cơ Khí Luận văn Kinh tế 0
B Đánh giá sự tham gia của các tổ chức quần chúng trong bảo vệ môi trường làng nghề trong quá trình công nghiệp hoá, hiện đại hoá nông thôn (lấy làng nghề giấy Phong Khê làm ví dụ) Luận văn Sư phạm 0
N Nghiên cứu cơ sở khoa học và khả năng áp dụng các công cụ kinh tế trong việc quản lý và sử dụng hợp lý tài nguyên và môi trường khu vực nhỏ ( Lấy ví dụ Hồ Tây - Hà Nội) Luận văn Sư phạm 0
T Nghiên cứu dự báo triển vọng khoáng sản trên cơ sở phân tích tổ hợp các tài liệu địa vật lý máy bay (Lấy vùng Tuy Hòa làm ví dụ) Luận văn Sư phạm 0
D phân tích sự bất bình đẳng về ý chí giữa các chủ thể trong quan hệ pháp luật hành chính. Cho ví dụ minh họa Văn hóa, Xã hội 0
D Mã hóa tiếng nói,các mô hình,các chuẩn mã hóa tiếng nói trong truyền thông đa phương tiện ( ví dụ trong VoiP ) Công nghệ thông tin 1
T Nêu ví dụ về một vụ án với tình huống mà khi tiến hành điều tra cơ quan điều tra bắt buộc phải tiến hành các hoạt động điều tra sau Luận văn Luật 0
T Quản lý kết cấu hạ tầng tại các khu đô thị mới. Lấy ví dụ điển hình về khu đô thị mới Trung Yên Tài liệu chưa phân loại 0
P Hoàn thiện cơ chế quản lý tài chính ở doanh nghiệp liên doanh với nước ngoài ngành viễn thông (Lấy ví dụ tại Công ty TNHH Các Hệ thống Viễn thông VNPT-FUJITSU) Tài liệu chưa phân loại 0

Các chủ đề có liên quan khác

Top