Cho dãy N số nguyên (với n nhập vào từ bàn phím). Viết chương trình thực hiện các yêu cầu sau.
a. Nhập vào dãy số n và giá trị từng phần tử của dãy.
b. Xuất giá trị của dãy vừa nhập.
c. Tính tổng các phần tử của dãy
d. In ra màn hình giá trị Max, Min của dãy.
e. Tính tổng các phần tử dương của dãy
f. Tính tổng các phần tử âm của dãy.
g. Tính tổng các phần tử chẵn của dãy.
h. Tính tổng các phần tử lẻ của dãy.
i. Sắp xếp các phần của dãy theo thứ tự giảm dần.
k. Sắp xếp các phần của dãy theo thứ tự tăng dần.
program tinh_toan_day_so;
const
MAX = 1000;
var
a: array[1..MAX] of integer;
n, i, tong, tong_duong, tong_am, tong_chan, tong_le, max, min, temp: integer;
begin
// Nhập dãy số và giá trị từng phần tử của dãy
write('Nhập số phần tử của dãy: ');
readln(n);
for i := 1 to n do
begin
write('Nhập phần tử thứ ', i, ': ');
readln(a[i]);
end;
// Xuất giá trị của dãy vừa nhập
writeln('Dãy số vừa nhập là: ');
for i := 1 to n do
begin
write(a[i], ' ');
end;
writeln();
// Tính tổng các phần tử của dãy
tong := 0;
for i := 1 to n do
begin
tong := tong + a[i];
end;
writeln('Tổng các phần tử của dãy là: ', tong);
// Tìm giá trị Max, Min của dãy
max := a[1];
min := a[1];
for i := 2 to n do
begin
if a[i] > max then
begin
max := a[i];
end;
if a[i] < min then
begin
min := a[i];
end;
end;
writeln('Phần tử lớn nhất của dãy là: ', max);
writeln('Phần tử nhỏ nhất của dãy là: ', min);
// Tính tổng các phần tử dương, âm, chẵn, lẻ của dãy
tong_duong := 0;
tong_am := 0;
tong_chan := 0;
tong_le := 0;
for i := 1 to n do
begin
if a[i] > 0 then
begin
tong_duong := tong_duong + a[i];
end
else
begin
tong_am := tong_am + a[i];
end;
if a[i] mod 2 = 0 then
begin
tong_chan := tong_chan + a[i];
end
else
begin
tong_le := tong_le + a[i];
end;
end;
writeln('Tổng các phần tử dương của dãy là: ', tong_duong);
writeln('Tổng các phần tử âm của dãy là: ', tong_am);
writeln('Tổng các phần tử chẵn của dãy là: ', tong_chan);
writeln('Tổng các phần tử lẻ của dãy là: ', tong_le);
// Sắp xếp các phần tử của dãy theo thứ tự giảm dần
for i := 1 to n-1 do
begin
for j := i+1 to n do
begin
if a[i] < a[j] then
begin
temp := a[i];
a[i] := a[j];
a[j] := temp;
end;
end;
end;
writeln('Dãy số sau khi được sắp xếp giảm dần là: ');
for i := 1 to n do
begin
write(a[i], ' ');
end;
writeln();
// Sắp xếp các phần tử của dãy theo thứ tự tăng dần
for i := 1 to n-1 do
begin
for j := i+1 to n do
begin
if a[i] > a[j] then
begin
temp := a[i];
a[i] := a[j];
a[j] := temp;
end;
end;
end;
writeln('Dãy số sau khi được sắp xếp tăng dần là: ');
for i := 1 to n do
begin
write(a[i], ' ');
end;
writeln();
readln;
end.
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.