rất dài nha bạn:
program XuLyDaySo;
var
N, i, soNguyen: integer;
daySo: array of integer;
procedure NhapDaySo(var daySo: array of integer; N: integer);
var
i: integer;
begin
SetLength(daySo, N);
for i := 0 to N - 1 do
begin
write('Nhap phan tu thu ', i + 1, ': ');
readln(daySo[i]);
end;
end;
procedure XuatDaySo(daySo: array of integer);
var
i: integer;
begin
writeln('Danh sach cac phan tu trong day:');
for i := 0 to Length(daySo) - 1 do
write(daySo[i], ' ');
writeln;
end;
function TinhTongDaySo(daySo: array of integer): integer;
var
i, tong: integer;
begin
tong := 0;
for i := 0 to Length(daySo) - 1 do
tong := tong + daySo[i];
TinhTongDaySo := tong;
end;
procedure TimMaxMin(daySo: array of integer; var Max, Min: integer);
var
i: integer;
begin
Max := daySo[0];
Min := daySo[0];
for i := 1 to Length(daySo) - 1 do
begin
if daySo[i] > Max then
Max := daySo[i];
if daySo[i] < Min then
Min := daySo[i];
end;
end;
function TinhTongDuong(daySo: array of integer): integer;
var
i, tong: integer;
begin
tong := 0;
for i := 0 to Length(daySo) - 1 do
if daySo[i] > 0 then
tong := tong + daySo[i];
TinhTongDuong := tong;
end;
function TinhTongAm(daySo: array of integer): integer;
var
i, tong: integer;
begin
tong := 0;
for i := 0 to Length(daySo) - 1 do
if daySo[i] < 0 then
tong := tong + daySo[i];
TinhTongAm := tong;
end;
function TinhTongChan(daySo: array of integer): integer;
var
i, tong: integer;
begin
tong := 0;
for i := 0 to Length(daySo) - 1 do
if daySo[i] mod 2 = 0 then
tong := tong + daySo[i];
TinhTongChan := tong;
end;
function TinhTongLe(daySo: array of integer): integer;
var
i, tong: integer;
begin
tong := 0;
for i := 0 to Length(daySo) - 1 do
if daySo[i] mod 2 <> 0 then
tong := tong + daySo[i];
TinhTongLe := tong;
end;
procedure SapXepGiamDan(var daySo: array of integer);
var
i, j, temp: integer;
begin
for i := 0 to Length(daySo) - 2 do
for j := i + 1 to Length(daySo) - 1 do
if daySo[i] < daySo[j] then
begin
temp := daySo[i];
daySo[i] := daySo[j];
daySo[j] := temp;
end;
end;
procedure SapXepTangDan(var daySo: array of integer);
var
i, j, temp: integer;
begin
for i := 0 to Length(daySo) - 2 do
for j := i + 1 to Length(daySo) - 1 do
if daySo[i] > daySo[j] then
begin
temp := daySo[i];
daySo[i] := daySo[j];
daySo[j] := temp;
end;
end;
begin
// Nhập số lượng phần tử N
write('Nhap so luong phan tu N: ');
readln(N);
// Nhập dãy số
NhapDaySo(daySo, N);
// Xuất dãy số
XuatDaySo(daySo);
// Tính tổng dãy số
writeln('Tong cac phan tu cua day: ', TinhTongDaySo(daySo));
// Tìm Max, Min
var Max, Min: integer;
TimMaxMin(daySo, Max, Min);
writeln('Gia tri lon nhat trong day: ', Max);
writeln('Gia tri nho nhat trong day: ', Min);
// Tính tổng các phần tử dương
writeln('Tong cac phan tu duong cua day: ', TinhTongDuong(daySo));
// Tính tổng các phần tử âm
writeln('Tong cac phan tu am cua day: ', TinhTongAm(daySo));
// Tính tổng các phần tử chẵn
writeln('Tong cac phan tu chan cua day: ', TinhTongChan(daySo));
// Tính tổng các phần tử lẻ
writeln('Tong cac phan tu le cua day: ', TinhTongLe(daySo));
// Sắp xếp giảm dần
SapXepGiamDan(daySo);
writeln('Day sau khi sap xep giam dan:');
XuatDaySo(daySo);
// Sắp xếp tăng dần
SapXepTangDan(daySo);
writeln('Day sau khi sap xep tang dan:');
XuatDaySo(daySo);
readln;
end.