Cho một hình chữ nhật ABCD, cạnh AB=a, cạnh BC=b. a,b là các số nguyên dương trong khoảng [1, 100] Một điểm M chạy trong đoạn BC với BM=x . x là số ng

By Clara

Cho một hình chữ nhật ABCD, cạnh AB=a, cạnh BC=b. a,b là các số
nguyên dương trong khoảng [1, 100]
Một điểm M chạy trong đoạn BC với BM=x . x là số nguyên duơng trong
khoảng [0, b], một điểm N chạy trong đoạn CD với CN=x
Tính giá trị lớn nhất và giá trị nhỏ nhất của diện tích tam giác AMN khi M,
N lưu động.
 
Dữ liệu vào: Được cho trong tập tin CHUNHAT.inp, gồm một dòng ghi hai số
nguyên dương lần lượt là a, b. Hai số cách nhau một khoảng trắng
Dữ liệu ra : Yêu cầu xuất ra tập tin CHUNHAT.out, gồm bốn dòng:
+ Dòng đầu là giá trị lớn nhất của diện tích tam giác AMN (một chữ số thập
phân)
+ Dòng thứ hai là một giá trị của x để diện tích tam giác AMN đạt giá trị lớn
nhất
+ Dòng thứ ba là giá trị nhỏ nhất của diện tích tam giác AMN (một chữ số
thập phân)
+ Dòng thứ tư là một giá trị của x để diện tích tam giác AMN đạt giá trị nhỏ
nhất
Ví dụ:
CHUNHAT.inp
10 6
CHUNHAT.out
30.0
0
17.5
5

0 bình luận về “Cho một hình chữ nhật ABCD, cạnh AB=a, cạnh BC=b. a,b là các số nguyên dương trong khoảng [1, 100] Một điểm M chạy trong đoạn BC với BM=x . x là số ng”

  1. const  fi = ‘chunhat.inp’;
           fo = ‘chunhat.out’;
    var   a,b: integer;
        i,j,x,y,m,n: integer;
        min,max: real;
        s,v:array[0..100] of real;
        f,g: text;
    begin
    assign(f,fi);
    reset(f);
    repeat
    readln(f,a,b);
    until (a>=1) and (a<=100) and (b>=1) and (b<=100);
    for x:=0 to b do
    begin
    s[x]:=a*b-(a*x/2)-((b-x)*x/2)-((a-x)*b/2);
    v[x]:=a*b-(a*x/2)-((b-x)*x/2)-((a-x)*b/2);
    end;
    max:=s[0]; m:=0;
    for i:=1 to b do
    if s[i]>max then begin max:=s[i]; m:=i; end;
    min:=v[0]; n:=0;
    for j:=1 to b do
    if v[j]<min then begin min:=v[j]; n:=j; end;
    assign(g,fo);
    rewrite(g);
    writeln(g,max:5:1);
    writeln(g,m);
    writeln(g,min:5:1);
    writeln(g,n);
    close(f);close(g);
    end.

    Trả lời
  2. Đáp án

    const  fi = ‘chunhat.inp’;
           fo = ‘chunhat.out’;
    var   a,b: integer;
        i,j,x,y,m,n: integer;
        min,max: real;
        s,v:array[0..100] of real;
        f,g: text;
    begin
    assign(f,fi);
    reset(f);
    repeat
    readln(f,a,b);
    until (a>=1) and (a<=100) and (b>=1) and (b<=100);
    for x:=0 to b do
    begin
    s[x]:=a*b-(a*x/2)-((b-x)*x/2)-((a-x)*b/2);
    v[x]:=a*b-(a*x/2)-((b-x)*x/2)-((a-x)*b/2);
    end;
    max:=s[0]; m:=0;
    for i:=1 to b do
    if s[i]>max then begin max:=s[i]; m:=i; end;
    min:=v[0]; n:=0;

    Trả lời

Viết một bình luận