Bài tập  /  Bài đang cần trả lời

Cho 1 dãy số gồm n phần tử 0

CHỦ ĐỀ: MẢNG MỘT CHIỀU
(Pascal)
cho 1 dãy số gồm n phần tử 0<n<=15. giá trị từng phần tử là số thực.
thực hiện các chươn 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
g) in các kết quả ra màn hình
2 trả lời
Hỏi chi tiết
66
2
1
quangcuongg
24/12/2023 12:25:29
+5đ tặng
program XuLyDaySo;

const
  MAX_SIZE = 15;

var
  arr: array[1..MAX_SIZE] of real;
  n, i: integer;
  tongAm, tongChan, soChan: real;
  max, min: real;

procedure NhapDaySo;
begin
  writeln('Nhap so luong phan tu (0 < n <= 15): ');
  readln(n);

  while (n <= 0) or (n > 15) do
  begin
    writeln('Nhap lai so luong phan tu: ');
    readln(n);
  end;

  writeln('Nhap gia tri cho tung phan tu: ');
  for i := 1 to n do
  begin
    write('arr[', i, '] = ');
    readln(arr[i]);
  end;
end;

procedure TinhTongAm;
begin
  tongAm := 0;
  for i := 1 to n do
    if arr[i] < 0 then
      tongAm := tongAm + arr[i];
end;

procedure TinhTongTrungBinhCacPhanTuChan;
begin
  tongChan := 0;
  soChan := 0;
  for i := 1 to n do
    if (i mod 2 = 0) then
    begin
      tongChan := tongChan + arr[i];
      soChan := soChan + 1;
    end;
end;

procedure TimMaxMin;
begin
  max := arr[1];
  min := arr[1];
  for i := 2 to n do
  begin
    if arr[i] > max then
      max := arr[i];
    if arr[i] < min then
      min := arr[i];
  end;
end;

procedure SapXepGiamDan;
var
  j: integer;
  temp: real;
begin
  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if arr[i] < arr[j] then
      begin
        temp := arr[i];
        arr[i] := arr[j];
        arr[j] := temp;
      end;
end;

procedure InKetQua;
begin
  writeln('Tong cac phan tu am: ', tongAm:8:2);
  if soChan > 0 then
    writeln('Tong cac phan tu chan: ', tongChan:8:2, ' Trung binh cong: ', (tongChan / soChan):8:2)
  else
    writeln('Khong co phan tu chan trong day.');
  writeln('Phan tu lon nhat: ', max:8:2);
  writeln('Phan tu nho nhat: ', min:8:2);
  writeln('Day sap xep giam dan: ');
  for i := 1 to n do
    write(arr[i]:8:2, ' ');
end;

begin
  NhapDaySo;
  TinhTongAm;
  TinhTongTrungBinhCacPhanTuChan;
  TimMaxMin;
  SapXepGiamDan;
  InKetQua;

  readln;
end.
 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập
1
0
Trung Trần
24/12/2023 12:25:45
+4đ tặng
Dưới đây là một đoạn mã Python để thực hiện các yêu cầu của bạn:
 
```python
def nhap_day_so():
    n = int(input("Nhập số phần tử của dãy (0 < n <= 15): "))
    if 0 < n <= 15:
        day_so = []
        for i in range(n):
            phan_tu = float(input(f"Nhập giá trị phần tử thứ {i+1}: "))
            day_so.append(phan_tu)
        return day_so
    else:
        print("Số phần tử không hợp lệ. Thoát chương trình.")
        exit()
 
def tong_phan_tu_am(day_so):
    tong_am = sum(x for x in day_so if x < 0)
    return tong_am
 
def tong_va_trung_binh_phan_tu_chan(day_so):
    phan_tu_chan = [x for x in day_so if x % 2 == 0]
    tong_chan = sum(phan_tu_chan)
    trung_binh_chan = tong_chan / len(phan_tu_chan) if len(phan_tu_chan) > 0 else 0
    return tong_chan, trung_binh_chan
 
def tim_max_min(day_so):
    max_value = max(day_so)
    min_value = min(day_so)
    return max_value, min_value
 
def sap_xep_giam_dan(day_so):
    day_so.sort(reverse=True)
    return day_so
 
def in_ket_qua(tong_am, tong_chan, trung_binh_chan, max_value, min_value, day_so_sap_xep):
    print(f"Tổng các phần tử âm của dãy là: {tong_am}")
    print(f"Tổng các phần tử chẵn của dãy là: {tong_chan}")
    print(f"Trung bình cộng các phần tử chẵn của dãy là: {trung_binh_chan}")
    print(f"Phần tử có giá trị lớn nhất của dãy là: {max_value}")
    print(f"Phần tử có giá trị nhỏ nhất của dãy là: {min_value}")
    print(f"Dãy sau khi được sắp xếp giảm dần là: {day_so_sap_xep}")
 
# a) Nhập dãy số
day_so = nhap_day_so()
 
# b) Tính tổng các phần tử âm của dãy
tong_am = tong_phan_tu_am(day_so)
 
# c) Tính tổng và trung bình cộng của các phần tử chẵn của dãy
tong_chan, trung_binh_chan = tong_va_trung_binh_phan_tu_chan(day_so)
 
# d) Tìm phần tử có giá trị lớn nhất và nhỏ nhất của dãy
max_value, min_value = tim_max_min(day_so)
 
# e) Sắp xếp dãy theo chiều giảm dần về giá trị của từng phần tử
day_so_sap_xep = sap_xep_giam_dan(day_so)
 
# f) In kết quả ra màn hình
in_ket_qua(tong_am, tong_chan, trung_binh_chan, max_value, min_value, day_so_sap_xep)
```
 
 
phan ngọc linh
chx học kiểu này ạ
Trung Trần
À cái này là của lớp 10 ý bạn
phan ngọc linh
mới lớp 8 luôn á

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo