Cấp số nhân, làm việc với file

0

Đề bài: Cho 3 số a, b, c thực. Kiểm tra xem mỗi 3 số đó giữ nguyên thứ tự của chúng có tạo thành cấp số nhân hay không. Nếu 3 số đó tạo thành cấp số nhân tính trung bình cộng của chúng, nếu không thì gấp đôi mỗi số. Biết a, b, c được lấy từ file csn.inp. Kết quả ghi vào file csn.out.

Cấp số nhân

Program CapSoNhan;
Uses Crt;

Var
   f,g:Text;
   a,b,c:Real;
   s:String;

{ham kiem tra xem so a,b,c co phai la cap so nhan hay khong}

Function kiemtra(o,p,q:real):Boolean;
  Begin
    If p/o=q/p then
      kiemtra:=True
    else
      kiemtra:=False;
  End;
Procedure XuLyChuoi(st:String);
  Var sa,sb,sc:String;
      code:integer;
  Begin
   sa:=copy(st,0,pos(' ',st)-1);{Lay ra chu so thu nhat}
   Delete(st,1,pos(' ',st));  {Xoa so thu nhat khoi chuoi}
   sb:=copy(st,1,pos(' ',st)-1);
   Delete (st,1,pos(' ',st));
   sc:=copy(st,1,length(st));
   Val(sa,a,code); {Doi chuoi thanh so}
   Val(sb,b,code);
   Val(sc,c,code);
  End;

{Chuong trinh chinh}
Begin
   Clrscr;
   assign(f,'\Pas\csn.inp'); Reset(f); {Mo file ra doc du lieu trong do}
   Readln(f,s); {Doc chuoi so gan vao bien S}
   Close(f);   {Dong file lai}
   Writeln(s);
   Writeln(a,b,c);
   XuLyChuoi(s); {Xu ly chuoi so trong file tach ra thanh so}
   assign(g,'\Pas\csn.out'); Rewrite(g);
   If Kiemtra(a,b,c) then {Kiem tra so va ghi vao file}
     Writeln(g,'ba so ',a:5:1,', ',b:5:1,', ',c:5:1,' tao thanh cap so nhan, trung binh cong:',(a+b+c)/3:5:2)
   Else
     Writeln(g,'ba so ',a:5:1,', ',b:5:1,', ',c:5:1,' khong tao thanh cap so nhan, gia tri moi la:',a*2,' ',b*2,' ',c*2);
   Close(g);

End.
0 0 vote
Article Rating
Share.

About Author

٩(●̮̮̃•̃)۶ Không có lẽ yêu trên đời quá khó ٩(͡๏̯͡๏)۶ Mà thôi yêu cũng chẳng dễ chút nào! ٩(×̯×)۶

Subscribe
Thông báo
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x