Bài tập về mảng 1 chiều trong Pascal.
Bài 1:
Cho 1 dãy số gồm n phần tử n<=15. Giá trị từng phần tử là số thực. Thực hiện các chương trình sau:
a) Nhập từ bàn phím số phần tử và giá trị từng phần tử
b) Tính tổng các phần tử âm của dãy
c) Tính tổng và trung bình cộng của các phần tử chẵn của dãy
d) Tìm phần tử có giá trị lớn nhất của dãy
e) Tìm phần tử có giá trị nhỏ nhất
f) Sắp xếp dãy theo chiều giảm dần về giá trị của từng phần tử
g) In các kết quả trên ra màn hình
Bài 2:
Cho 1 dãy số gồm n phần tử n<=15. Giá trị từng phần tử là số thực. Thực hiện các chương trình sau:
a) Nhập từ bàn phím số phần tử và giá trị từng phần tử
b) Tính tổng các phần tử dương của dãy
c) Tính tổng và trung bình cộng của các phần tử lẻ của dãy
d) Tìm phần tử có giá trị lớn nhất của dãy
e) Tìm phần tử có giá trị nhỏ nhất
f) Sắp xếp dãy theo chiều tăng dần về giá trị của từng phần tử
g) In các kết quả trên ra màn hình
mọi người cứu mình vớiii!
Quảng cáo
1 câu trả lời 326
program Bai1;
var
n, i: integer;
arr: array[1..15] of real;
sumNegative, sumEven: real;
max, min: real;
begin
// Nhập số phần tử và giá trị từng phần tử
write('Nhap so phan tu (n <= 15): ');
readln(n);
for i := 1 to n do
begin
write('Nhap phan tu thu ', i, ': ');
readln(arr[i]);
end;
// Tính tổng các phần tử âm của dãy
sumNegative := 0;
for i := 1 to n do
begin
if arr[i] < 0 then
sumNegative := sumNegative + arr[i];
end;
// Tính tổng và trung bình cộng của các phần tử chẵn của dãy
sumEven := 0;
for i := 1 to n do
begin
if arr[i] mod 2 = 0 then
sumEven := sumEven + arr[i];
end;
writeln('Tong phan tu chan: ', sumEven);
writeln('Trung binh cong phan tu chan: ', sumEven / n);
// Tìm phần tử có giá trị lớn nhất của dãy
max := arr[1];
for i := 2 to n do
begin
if arr[i] > max then
max := arr[i];
end;
writeln('Phan tu co gia tri *** nhat: ', max);
// Tìm phần tử có giá trị nhỏ nhất
min := arr[1];
for i := 2 to n do
begin
if arr[i] < min then
min := arr[i];
end;
writeln('Phan tu co gia tri nho nhat: ', min);
// Sắp xếp dãy theo chiều giảm dần về giá trị của từng phần tử
for i := 1 to n - 1 do
begin
for j := i + 1 to n do
begin
if arr[i] < arr[j] then
begin
temp := arr[i];
arr[i] := arr[j];
arr[j] := temp;
end;
end;
end;
// In kết quả ra màn hình
writeln('Tong phan tu am: ', sumNegative);
writeln('Phan tu co gia tri *** nhat: ', max);
writeln('Phan tu co gia tri nho nhat: ', min);
writeln('Danh sach da sap xep giam dan: ');
for i := 1 to n do
begin
writeln(arr[i]);
end;
end.
program BaiTap2;
const
MAX_SIZE = 15;
var
a: array[1..MAX_SIZE] of real;
n: integer;
procedure NhapDaySo(var a: array of real; var n: integer);
var
i: integer;
begin
write('Nhap so phan tu cua day (n <= 15): ');
readln(n);
for i := 1 to n do
begin
write('Nhap phan tu thu ', i, ': ');
readln(a[i]);
end;
end;
function TongCacPhanTuDuong(a: array of real; n: integer): real;
var
i: integer;
tong: real;
begin
tong := 0;
for i := 1 to n do
begin
if a[i] > 0 then
tong := tong + a[i];
end;
TongCacPhanTuDuong := tong;
end;
procedure TinhTongVaTrungBinhCongCuaLe(a: array of real; n: integer; var tong: real; var trungbinhcong: real);
var
i, dem: integer;
begin
tong := 0;
dem := 0;
for i := 1 to n do
begin
if a[i] mod 2 <> 0 then
begin
tong := tong + a[i];
dem := dem + 1;
end;
end;
if dem > 0 then
trungbinhcong := tong / dem
else
trungbinhcong := 0;
end;
function TimPhanTuLonNhat(a: array of real; n: integer): real;
var
i: integer;
max: real;
begin
max := a[1];
for i := 2 to n do
begin
if a[i] > max then
max := a[i];
end;
TimPhanTuLonNhat := max;
end;
function TimPhanTuNhoNhat(a: array of real; n: integer): real;
var
i: integer;
min: real;
begin
min := a[1];
for i := 2 to n do
begin
if a[i] < min then
min := a[i];
end;
TimPhanTuNhoNhat := min;
end;
procedure SapXepTangDan(a: array of real; n: integer);
var
i, j: integer;
temp: real;
begin
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] > a[j] then
begin
temp := a[i];
a[i] := a[j];
a[j] := temp;
end;
end;
procedure XuatKetQua(a: array of real; n: integer; tongDuong, tongLe, trungBinhCongLe, max, min: real);
var
i: integer;
begin
writeln('Dãy số đã nhập là: ');
for i := 1 to n do
write(a[i]:8:2);
writeln;
writeln('Tổng các phần tử dương là: ', tongDuong:8:2);
writeln('Tổng các phần tử lẻ là: ', tongLe:8:2);
writeln('Trung bình cộng của các phần tử lẻ là: ', trungBinhCongLe:8:2);
writeln('Phần tử lớn nhất là: ', max:8:2);
writeln('Phần tử nhỏ nhất là: ', min:8:2);
writeln('Dãy số sau khi sắp xếp theo chiều tăng dần là: ');
for i := 1 to n do
write(a[i]:8:2);
end;
begin
NhapDaySo(a, n);
writeln('-----------------------------------------');
if n > 0 then
begin
var tongDuong := TongCacPhanTuDuong(a, n);
var tongLe, trungBinhCongLe: real;
TinhTongVaTrungBinhCongCuaLe(a, n, tongLe, trungBinhCongLe);
var max := TimPhanTuLonNhat(a, n);
var min := TimPhanTuNhoNhat(a, n);
SapXepTangDan(a, n);
XuatKetQua(a, n, tongDuong, tongLe, trungBinhCongLe, max, min);
end
else
writeln('Dãy số không hợp lệ!');
readln;
end.
Quảng cáo
Câu hỏi hot cùng chủ đề
-
1 8789