Monday, June 13, 2016

Bài tập lập trình hướng đối tượng java Số 9 (Chữa bài kiểm tra học kỳ )

//Họ tên: Trần Văn Linh
//Msv:581597
//Lớp:K58QLTT

Đề 03;



public class Circle
{
    private double radius;
    private String color;
   
    public Circle()
    {
        this.radius=1.0;
    }
    public Circle(double radius)
    {
        this.radius=radius;
    }
    public double getRadius()
    {
        return this.radius;
    }
     public double getArea()
    {
        return Math.PI*this.radius*this.radius;
    }
}
 //----------------------------------------------------
public class Cylinder extends Circle
{
    private double height;
    //contructor
    public Cylinder()
    {
        this.height=1.0;
    }
    public Cylinder(double radius)
    {
         super(radius);
         this.height=1.0;
    }
    public Cylinder(double radius,double height)
    {
         super(radius);
         this.height=height;
    }
   
    public double getHeight()
    {
        return this.height;
    }
    //ham tinh the tich
    public double getVolume()
    {
        return super.getArea()*this.height;
    }
    //overide equals
    public boolean equals(Object obj)
    {
        Cylinder tg=(Cylinder)obj;
        if(this.getRadius()==tg.getRadius()&&this.height==tg.getHeight())
        {
            return true;
        }
        return false;
    }
}
 //---------------------------------------------------------
public class Test
{
   public static void main(String[] args)
   {
      //su dung ham tao Cylinder();
       Cylinder ht1=new Cylinder();
       System.out.println("Ban kinh :"+ht1.getRadius());
       System.out.println("Chieu cao: "+ht1.getHeight());
       System.out.println("Dien tich mot mat: "+ht1.getArea());
       System.out.println("The tich: "+ht1.getVolume());
      
       //su dung ham tao Cylinder(5.0,2.0);
       Cylinder ht2=new Cylinder(5.0,2.0);
       System.out.println("Ban kinh :"+ht2.getRadius());
       System.out.println("Chieu cao: "+ht2.getHeight());
       System.out.println("Dien tich mot mat: "+ht2.getArea());
       System.out.println("The tich: "+ht2.getVolume());
   }
}

Saturday, May 21, 2016

Chương trình chuyển đổi 1 số nguyên dương sang dạng nhị phân sử dụng ngăn xếp cài đặt bằng danh sách liên kết kép bằng ngôn ngữ C

//Ho va ten: Tran Van Linh
//Msv:581597
//Lop:K58QLTT

#include<stdio.h>
#include<stdlib.h>

//Khai bao cau truc
struct node
{
          int infor;
          struct node *left;
          struct node *right;
} *T=NULL;

//khai bao ham
void push(int x);
int pop();
int empty();

//==chuong trinh chinh==
int main()
{
          int n,thuong;
         
          printf("Nhap so nguyen can chuyen sang dang nhi phan:");
          do
          {
                   scanf("%d",&n);
                   if(n<0)
                             printf("\nSo nguyen nhap phai duong,nhap lai: ");
          }while(n<0);
         
          thuong=n;
         
          while(thuong)
          {
                   push(thuong%2);
                   thuong/=2;
          }
         
          printf("\nDang nhi phan cua %d la:",n);
          while(!empty())
                   printf("%d",pop());
          return 0;
}
//==Dinh nghia ham==
void push(int x)
{
          struct node *N;
          N=(struct node*)malloc(sizeof(struct node));
          N->infor=x;
          N->left=NULL;
          N->right=NULL;
         
          //bo sung vao dinh ngan xep
          if(T==NULL)
                   T=N;
          else
          {
                   N->right=T;
                   T->left=N;
                   T=N;
          }
}
//-------------
int pop()
{
          int tg;
          struct node *P;
         
          if(T==NULL)
          {
                   printf("Danh sach rong.!");
                   return 0;
          }
          tg=T->infor;
          P=T;
          if(T->right==NULL) //Trường hợp ds chỉ có 1 nút
          {
                   T=NULL;
          }
          else
          {
                   T=T->right;
                   T->left=NULL;
          }
          free(P);
          return tg;
}
//-------------
int empty()
{
          if(T==NULL)
                   return 1;
          return 0;
}

//-------------

Giải thuật chuyển 1 số nguyên dương sang dạng nhị phân sử dụng ngăn xếp cài đặt bằng danh sách liên kết kép

//Họ Tên: Trần Văn Linh
// Msv:581597
//Lớp:K58QLTT

A.   Giải thuật chương trình chính
Program ChuyenDoiNhiPhan;
1, read(n);
2, while n <> 0 do
    Begin
              Tg:=n mod 2;
              Call Push(Tg);
              n:= n /2;
    end
3, while Empty(T) <>TRUE do write(Pop());
End.

B.   Thủ tục bổ sung vào ngăn xếp cài đặt bằng danh sách liên kết kép
Vào : Ngăn xếp (T,X);
Ra:  Không có;
{Thủ tục này bổ sung phân tử dữ liệu X vào ngăn xếp (T) có T là nút đỉnh ngăn xếp cài đặt bằng danh sách liên kết kép ;}

Procedure       Push(var:T,x)
1,{Tao nút mới }
    new<=AVAIL;
    infor(new):=x;
    left(new):= Ø;
    right(new):= Ø;
2,{ Bổ dung vào ngăn xếp}
If T =Ø then    { trường hợp danh sách rỗng}
    T:= new;
Else
    Begin
              right(new):=T;
              left(T):=new;
              T:=new;
    End
Return

C.   Hàm loại bỏ một phần tử ở đỉnh ngăn xếp
Vào :Ngăn xếp (T);
Ra: Trả phần tử dữ liệu của nút bị loại bỏ.
{Hàm này loại bỏ phần tử của đỉnh ngăn xêp(T) có T là đỉnh ngăn xếp và trả về phần tử loại bỏ;}

Function Pop(var: T)
1,{Kiem tra danh sach rong};
    If T=Ø then begin
                                          Write(‘Danh sach rong.!’);
                                          Return ;
                                 End;
2,{Loại bỏ phần tử đỉnh ngăn xếp}
    Tg:=INFOR(T);
    P:=T;
    If right(T)= Ø  then {Trường hợp danh sách chỉ còn 1 node }
T:= Ø
    Else
              Begin
                       T:=right(T);
                       left(T):= Ø;
              End;
              P=>AVAIL;
3, Pop:=Tg;
Return;

D.   Hàm kiểm tra ngăn xếp rỗng
Vào: ngăn xếp (T);
Ra :TRUE nếu ngăn xếp rỗng , FALSE nếu ngăn xếp chưa rỗng.
{hàm này kiểm tra ngăn xếp rỗng, ngăn xếp được cài đặt bằng danh sách liên kép}

Function  Empty(T)
If T= Ø  then 
Empty:=TRUE;
else
         Empty:=FALSE;