Lập trình tính trung bình cộng các số dương, âm trong mảng 1 chiều bằng pascal

Viết chương trình nhập số nguyên N (0 < N ≤ 10 000) và mảng a gồm N số nguyên. Tính và in ra trung bình cộng của các số âm, số dương trong a. Không tính số 0.

Ví dụ : a[] = {1, -6, 0, 3, -1}. Trung bình cộng là -0.75

PROGRAM tbc_am_duong_mang;
USES crt;
VAR a:ARRAY[1..100] OF REAL;
    i,n,x,y:INTEGER;
    tongam,tongduong,tba,tbd:REAL;
BEGIN
    clrscr;
    write('So phan tu cua day n= ');readln(n);
    FOR i:=1 TO n DO
        BEGIN
            write('Nhap phan tu a[',i,']: ');
            readln(a[i]);
        END;
   
    tongam:=0; x:=0;
    FOR i:=1 TO n DO
    IF a[i]<0 THEN
        BEGIN tongam:=tongam+a[i];
              x:=x+1;
        END;
    tba:=tongam/x;
    write('TB cong cac so am la: ',tba:5:1);
   
    writeln;
   
    tongduong:=0; y:=0;
    FOR i:=1 TO n DO
    IF a[i]>0 THEN
        BEGIN tongduong:=tongduong+a[i];
              y:=y+1;
        END;
    tbd:=tongduong/y;
    write('TB cong cac so duong la: ',tbd:5:1);
   
    readln;
END.

1 nhận xét: