Tin k9-NBK Quảng Nam
Chào mừng bạn đến với diễn đàn Tin k9 Nbk Quảng Nam

Join the forum, it's quick and easy

Tin k9-NBK Quảng Nam
Chào mừng bạn đến với diễn đàn Tin k9 Nbk Quảng Nam
Tin k9-NBK Quảng Nam
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

bai tap phan 6

Go down

bai tap phan 6 Empty bai tap phan 6

Bài gửi by Profession_jamy Sat Oct 30, 2010 9:16 am

Program Phan_So_1;
Uses PhanSo1;
Var
x : T_PhanSo1;
r : Real;
BEGIN
Writeln('DOI SO THUC RA OHAN SO TOI GIAN');
Writeln('-------------------------------');
Writeln;
Write('-Nhap mot so thuc: ');
Readln(r);
Writeln;
With x Do
Begin
KhoiDong;
Write('+Doi ra dang phan so la= ');
Doi(r);
Xuat;
Writeln;
Write('+Phan so toi gian la = ');
Toigian;
Xuat;
End;
Readln
END.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
Program Phan_So_2;
Uses PhanSo2;
Var
X,Y : T_PhanSo2;
so1,so2 : Real;
Begin
Writeln('SO SANH, CONG 2 SO THUC DUOI DANG PHAN SO');
Writeln('----------------------------------------');
Writeln;
Write('-Nhap so thu nhat: ');
Readln(so1);
Write('-Nhap so thu hai : ');
Readln(so2);
X.KhoiDong;
Y.KhoiDong;
X.Doi(So1);
Y.Doi(So2);
Writeln;
Write('-Doi so thu nhat ra phan so la : ');
X.Xuat;
Writeln;
Write('-Doi so thu hai ra phan so la : ');
Y.Xuat;
Writeln;
Writeln;
If X.LonHon(Y) Then
Writeln('-So thu nhat lon hon so thu hai');
If Y.LonHon(X) Then
Writeln('-So thu hai lon hon so thu nhat');
Writeln;
X.Cong(Y);
Write('-Tong 2 phan so la : ');
X.Xuat;
Writeln;
Write(' Bam <Enter> . . . ');
Readln
End.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
Program Phan_So_3;
Uses PhanSo3;
Var
X,Y : T_PhanSo3;
so1,so2 : Real;
Begin
Writeln('SO SANH, CONG 2 SO THUC CHENH LECH LON');
Writeln('--------------------------------------');
Writeln;
Write('-Nhap so thu nhat: ');
Readln(so1);
Write('-Nhap so thu hai : ');
Readln(so2);
X.KhoiDong;
Y.KhoiDong;
X.Doi(So1);
Y.Doi(So2);
Writeln;
If X.LonHon(Y) Then
Writeln('-So thu nhat lon hon so thu hai');
If Y.LonHon(X) Then
Writeln('-So thu hai lon hon so thu nhat');
Writeln;
X.Cong(Y);
Write('-Tong 2 so la : ');
X.Xuat;
Writeln;
Write(' Bam <Enter> . . . ');
Readln
End.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
Program ListDemo;
Uses ListUtil;
TYPE
StrObjPtr = ^StrObj;
StrObj = OBJECT(Item)
St : ^String;
Constructor Init(InitStr : String);
Destructor Done; Virtual;
Procedure Print; Virtual;
End;
VAR
ItemList : List;
F : Text; {bien kieu tap tin van ban}
Line : String[80];
{-----------------------------}
Constructor StrObj.Init;
Begin
Item.Init;
GetMem(St,length(InitStr) + 1);
St^ := InitStr;
End;
{-----------------------------}
Destructor Strobj.Done;
Begin
FreeMem(St, Length(St^) + 1);
Item.Done;
End;
{-----------------------------}
Procedure StrObj.Print;
Begin
Item.Print;
Write(St^);
End;
{-----------------------------}
BEGIN
ItemList.Init;
Writeln('-Bo nho truoc khi doc tap tin: ',MemAvail,' bytes');
Writeln;
Write('-Bam <Enter> de doc tap tin BAITHO.TXT tu dia ');
Readln;
Assign(F,'BAITHO.TXT'); {Gan bien tap tin}
Reset(F); {Mo tap tin da co tren dia }
While Not EOF(F) Do
Begin
Readln(F,Line);
ItemList.InsertItem(New(StrObjPtr,Init(Line)))
End;
Writeln;
ItemList.PrintList;
Writeln;
Writeln;
Writeln('-Bo nho sau khi doc tap tin: ',MemAvail,' bytes');
ItemList.DisposeList;
Writeln;
Writeln;
Writeln('-Bo nho sau khi xoa bang Dispose: ',MemAvail,' bytes');
Writeln;
Write(' Bam <Enter>. . . ');
Readln
END.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
Program ListDemo;
Uses ListUtil;
TYPE
IntObjPtr = ^IntObj;
IntObj = OBJECT(Item)
I : Integer;
Constructor Init(InitI : Integer);
Procedure Print; Virtual;
End;
RealObjPtr = ^RealObj;
RealObj = OBJECT(Item)
R : Real;
Constructor init(InitReal : Real);
Procedure Print; Virtual;
End;
StrObjPtr = ^StrObj;
StrObj = OBJECT(Item)
St : ^String;
Constructor Init(InitStr : String);
Destructor Done; Virtual;
Procedure Print; Virtual;
End;
VAR
ItemList : List;
{--------------------------------}
Constructor IntObj.Init;
Begin
Item.Init;
I :=InitI;
End;
{--------------------------------}
Procedure IntObj.Print;
Begin
Item.print;
Write(' +So nguyen = ',i);
End;
{--------------------------------}
Constructor RealObj.Init;
Begin
Item.Init;
R := InitReal
End;
{--------------------------------}
Procedure RealObj.Print;
Begin
Item.Print;
Write(' +So thuc = ',r);
End;
{--------------------------------}
Constructor StrObj.Init;
Begin
Item.Init;
Getmem(St,Length(InitStr) +1);
St^ := InitStr;
End;
{--------------------------------}
Destructor StrObj.Done;
Begin
FreeMem(St,Length(St^) + 1);
Item.Done;
End;
{--------------------------------}
Procedure StrObj.print;
Begin
Item.Print;
Write(' +Chuoi ky tu = ',St^);
End;
{--------------------------------}
BEGIN
ItemList.Init;
Writeln('-Bo nho truoc khi chen du lieu: ',MemAvail,' bytes');
ItemList.InsertItem(New(IntObjPtr,Init(123)));
ItemList.InsertItem(New(RealObjPtr,Init(123.456)));
ItemList.InsertItem(New(StrObjPtr,Init('Turbo Pascal 7.0')));
Itemlist.PrintList;
Writeln;
Writeln;
Writeln('-Bo nho sau khi chen du lieu: ',MemAvail,' bytes');
ItemList.DisposeList;
Writeln;
Writeln;
Writeln('-Bo nho sau khi xoa bang Dispose = ',MemAvail,' bytes');
Writeln;
Write(' Bam <Enter> ... ');
Readln
END.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
Program Ve_hinh;
Uses Crt,Graph,Dos,Vehinh;
TYPE
Arc = OBJECT(Circle)
StartAngle, EndAngle : Integer;
Constructor Init(InitX,InitY,InitRadius, InitS,InitE:Integer);
Procedure Show; Virtual;
Procedure Hide; Virtual;
End;
VAR
GrDriver, GrMode: Integer;
Cung : Arc;
C : Circle;
P : Point;
{-------------------------------------}
Constructor Arc.Init;
Begin
Circle.Init(InitX,InitY,InitRadius);
StartAngle := InitS;
EndAngle := InitE;
End;
{-------------------------------------}
Procedure Arc.Show;
Begin
Visible := True;
Graph.Arc(X,Y,StartAngle,EndAngle,Radius);
End;
{-------------------------------------}
Procedure Arc.Hide;
Var
TempColor : Word;
Begin
TempColor := Graph.GetColor;
Graph.SetColor(GetBkColor);
Visible := False;
Graph.Arc(X,Y,StartAngle,EndAngle,Radius);
SetColor(TempColor);
End;
{-------------------------------------}
BEGIN
GrDriver := CGA;
GrMode := CGAC0;
InitGraph(GrDriver,GrMode,'C:\BP\BGI');
C.Init(151,82,50);
Cung.Init(151,82,25,0,90);
P.Init(151,82);
P.Drag(5);
Cung.Drag(5);
C.Drag(5);
CloseGraph
END.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
Unit ListUtil;
INTERFACE
TYPE
ItemPtr = ^Item;
Item = OBJECT
Next : ItemPtr;
Constructor Init;
Procedure print; Virtual;
Destructor Done; Virtual;
End;
List = OBJECT
Root : ItemPtr;
Constructor Init;
procedure InsertItem(P : ItemPtr);
Procedure DisposeList;
Procedure PrintList;
End;
IMPLEMENTATION
Var
Last : ItemPtr;
{------------------------------}
Constructor Item.Init;
Begin
Next := Nil;
End;
{------------------------------}
Destructor Item.Done;
Begin
End;
{------------------------------}
Procedure Item.Print;
Begin
Writeln;
End;
{------------------------------}
Constructor List.Init;
Begin
Root := Nil;
End;
{------------------------------}
Procedure List.InsertItem;
Begin
If Root = Nil Then
Root := P
Else
Last^.Next := P;
Last := P;
Last^.Next := Nil
End;
{------------------------------}
Procedure List.PrintList;
Var
Ip : ItemPtr;
Begin
Ip := Root;
While ( Ip <> Nil ) Do
Begin
Ip^.print;
Ip := Ip^.Next
End;
End;
{------------------------------}
Procedure List.DisposeList;
Var
Ip : ItemPtr;
Begin
While (Root <> Nil) Do
Begin
Ip := Root;
Root := Ip^.Next;
Dispose(Ip,Done);
End;
End;
END.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
UNIT PhanSo1;
INTERFACE
TYPE
T_Dau = -1.. 1;
T_PhanSo1 = OBJECT
TuSo, MauSo : LongInt;
Dau : T_Dau;
CONSTRUCTOR KhoiDong;
Procedure Doi(r : Real);
Procedure ToiGian;
Procedure Xuat;
End;
IMPLEMENTATION
CONST
Max = 2147483647;
R_min = 1E-10;
CONSTRUCTOR T_PhanSo1.KhoiDong;
Begin
End;
{--------------------------}
Procedure T_PhanSo1.Doi(r : Real);
Var
PS : T_PhanSo1;
Du : Real;
Begin
If ABS(r) > Max Then
RunError(7);
If r > 0 Then
Dau := 1
Else
Dau := -1;
r := ABS(r);
MauSo := 1;
Du := r - Int(r);
While Du > R_Min Do
Begin
r := 10 * r;
MauSo := 10 * MauSo;
Du := r - Round(r);
End;
TuSo := Round(r);
End;
{--------------------------}
Procedure T_PhanSo1.ToiGian;
Var
u : LongInt;
Function USCLN(x, y : LongInt) : LongInt;
Begin
While NOT (x = y) Do
If x > y Then
x := x - y
Else
y := y -x;
USCLN := x;
End;
Begin
If TuSo = 0 Then
Begin
MauSo := 1;
Dau := 0;
Exit;
End;
u := USCLN(TuSo, MauSo);
TuSo := TuSo Div u;
MauSo := MauSo Div u;
End;
{--------------------------}
Procedure T_PhanSo1.Xuat;
Begin
If MauSo = 1 Then
Begin
If Dau = -1 Then
Write('-',TuSo)
Else
Write(TuSo);
Exit
End;
If Dau = -1 Then
Write('-',TuSo, '/', MauSo)
Else
Write(TuSo,'/',MauSo);
End;
END.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
UNIT PhanSo2;
INTERFACE
(**************)
USES PhanSo1;
TYPE
T_PhanSo2 = Object(T_PhanSo1)
Procedure Cong(Ps : T_PhanSo2);
Function LonHon(Ps : T_PhanSo2): Boolean;
End;
IMPLEMENTATION
(**************)
Function T_PhanSo2.LonHon(Ps : T_PhanSo2) : Boolean;
Var
x, y : Real;
Begin
x := TuSo;
x := x / MauSo;
y := Ps.TuSo;
y := y / Ps.MauSo;
If x > y Then
LonHon := True
Else
LonHon := False;
End;
(**************)
Procedure T_PhanSo2.Cong(Ps : T_PhanSo2);
Var
x, y, Tong : Real;
Begin
x := TuSo;
x := x / MauSo;
y := Ps.TuSo;
y := y / Ps.MauSo;
Tong := x + y;
Doi(Tong);
x := TuSo;
x := x / MauSo;
ToiGian;
x := TuSo;
x := x / MauSo;
End;
END.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
UNIT PhanSo3;
INTERFACE
Uses PhanSo2;
TYPE
T_PhanSo3 = Object(T_PhanSo2)
Constructor KhoiDong;
Procedure ToiGian; Virtual;
End;
IMPLEMENTATION
{--------------------------------}
Constructor T_PhanSo3.KhoiDong;
Begin
End;
{--------------------------------}
Procedure T_PhanSo3.ToiGian;
Var
u:LongInt;
Function USCLN(x, y : LongInt): LongInt;
Var
Tam : LongInt;
Begin
Tam :=0;
Repeat
If x >= y Then
If (x Mod y) = 0 Then
Tam :=y
Else
x := x - (x Div y) * y;
If y > x Then
If (y Mod x) = 0 Then
Tam := x
Else
y := y-(y div x) * x;
Until (Tam <> 0);
USCLN := Tam;
End;
Begin
If TuSo = 0 Then
Begin
MauSo := 1;
Dau := 0;
Exit;
End;
u := USCLN(TuSo, MauSo);
TuSo := TuSo Div u;
MauSo := MauSo Div u;
End;
END.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
Unit VeHinh;
INTERFACE
TYPE
Location = OBJECT
X,Y : Integer;
Constructor Init(InitX,InitY : Integer);
Function GetX : Integer;
Function GetY : Integer;
End;
Pointptr = ^Point;
Point = OBJECT(Location)
Visible : Boolean;
Constructor Init(InitX,InitY : Integer);
Destructor Done; Virtual;
Procedure Show; Virtual;
Procedure Hide; Virtual;
Function IsVisible : Boolean;
Procedure MoveTo(NewX,NewY :Integer);
Procedure Drag(DragBy : Integer); Virtual;
End;
CirclePtr =^Circle;
Circle = OBJECT(Point)
Radius : Integer;
Constructor Init(InitX,InitY,InitRadius : Integer);
Procedure Show; Virtual;
Procedure Hide; Virtual;
procedure Expand(ExpandBy : Integer); Virtual;
Procedure ConStract(ConstractBy : Integer); Virtual;
End;
IMPLEMENTATION
Uses Graph, Crt;
{CAI DAT LOCATION}
{-----------------------------------}
Constructor Location.Init;
Begin
X := InitX;
Y := InitY;
End;
{-----------------------------------}
Function Location.GetX;
Begin
GetX := X;
End;
{-----------------------------------}
Function Location.GetY;
Begin
GetY := Y;
End;
{-----------------------------------}
{CAI DAT POINT}
{-----------------------------------}
Constructor Point.Init;
Begin
Location.Init(initX,InitY);
Visible := False;
End;
{-----------------------------------}
Destructor Point.Done;
Begin
Hide;
End;
{-----------------------------------}
Procedure Point.Show;
Begin
Visible := True;
PutPixel(X,Y,GetColor);
End;
{-----------------------------------}
Procedure Point.Hide;
Begin
Visible := False;
PutPixel(X,Y,GetBkColor);
End;
{-----------------------------------}
Function Point.IsVisible;
Begin
IsVisible := Visible;
End;
{-----------------------------------}
Procedure Point.MoveTo;
Begin
Hide;
X := NewX;
Y := NewY;
Show;
End;
{-----------------------------------}
Function GetDelta(Var DeltaX,DeltaY : Integer): Boolean;
Var
KeyChar : Char;
Quit : Boolean;
Result : Boolean;
Begin
DeltaX := 0;
DeltaY := 0;Result := True;
Repeat
KeyChar := ReadKey;
Quit := True;
If KeyChar = #0 then
KeyChar := ReadKey;
Case KeyChar Of
#72 : DeltaY := -1; { Mui ten len}
#80 : DeltaY := 1; { Mui ten xuong }
#75 : DeltaX :=-1; {Mui ten trai }
#77 : DeltaX := 1; { Mui ten phai }
#27 : Result := False {Phim Esc }
Else
Quit := False;
End;
Until Quit;
GetDelta :=Result;
End;
{-----------------------------------}
Procedure Point.Drag;
Var
DeltaX,DeltaY : Integer;
FigureX,FigureY : Integer;
Begin
Show;
FigureX := GetX;
FigureY := GetY;
While GetDelta(DeltaX,DeltaY) Do
Begin
Inc(FigureX,DeltaX*DragBy);
Inc(FigureY,DeltaY*DragBy);
MoveTo(FigureX,FigureY);
End;
End;
{-----------------------------------}
{ CAI DAT CIRCLE}
{-----------------------------------}
Constructor Circle.Init;
Begin
Point.Init(InitX,InitY);
Radius := InitRadius;
End;
{-----------------------------------}
Procedure Circle.Show;
Begin
Visible := True;
Graph.Circle(X,Y,Radius);
End;
{-----------------------------------}
Procedure Circle.Hide;
Var
TempColor : Word;
Begin
TempColor := Graph.GetColor;
Graph.SetColor(GetBkColor);
Visible := False;
Graph.Circle(X,Y,Radius);
Graph.SetColor(TempColor);
End;
{-----------------------------------}
Procedure Circle.Expand;
Begin
Hide;
Inc(Radius, ExpandBy);
If Radius < 0 Then
Radius := 0;
Show;
End;
{-----------------------------------}
Procedure Circle.Constract;
Begin
Expand(-ConstractBy);
End;
END.
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
(-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-H?t=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-)
Profession_jamy
Profession_jamy
Ma cấp II
Ma cấp II

Tổng số bài gửi : 132
Join date : 25/10/2010
Age : 44
Đến từ : Tamky

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết