Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Cho em hỏi về biên dịch trong C ++ Borlan 5.02

    Thay vì include file .h trong thư viện, em inlcude file .cpp và cho combile và chạy (ctrl + F9 ) nhưng chỉ hiện lên dòng lệnh thui, không hiện lên kết quả.
    ví dụ em làm code sau :
    file list.cpp
    Mã:
    #include <stdio.h>
    #include <mem.h>
    typedef struct nodet {
    			elem data;
    			struct nodet *next;
    		} node;
    typedef node *nodeptr;
    typedef struct {
    			nodeptr head, pos, rear;
    			int count;
    		} list;
    
    ////////////////// Khoi tao list l rong
    void createlist(list &l)
    {
    	l.head = l.pos = l.rear = NULL;
    	l.count = 0;
    }
    
    ////////////////// Kiem tra list l rong?
    int emptylist(list l)
    {
    	return l.count == 0;
    }
    
    ////////////////// Ham chen local
    void insertlist(list &l, elem &x, nodeptr p)
    {
    	nodeptr newp = new node;
    	memcpy(&newp->data, &x, sizeof(elem));
    	if (p == NULL)
    	{
    		newp->next = l.head;
    		l.head = newp;
    	}
    	else
    	{
    
    		newp->next = p->next;
    		p->next = newp;
    	}
    	if (newp->next == NULL)
    		l.rear = newp;
    	l.count++;
    }
    
    ////////////////// Ham chen dau
    void inserthead(list &l, elem x)
    {
    	insertlist(l, x, NULL);
    }
    
    ////////////////// Ham chen cuoi
    void insertrear(list &l, elem x)
    {
    	insertlist(l, x, l.rear);
    }
    
    ////////////////// Ham chen vao sau hien hanh
    void insertpos(list &l, elem x)
    {
    	insertlist(l, x, l.pos);
    }
    
    /////////////////// Ham tim kiem theo khoa
    int searchlist(list &l, elem x, int (*comp)(elem, elem))
    {
    	nodeptr c = l.head;
    	l.pos = NULL;
    	while (c!=NULL && comp(x, c->data)!=0)
    	{
    		l.pos = c;
    		c = c->next;
    	}
    	return (c!=NULL);
    }
    
    /////////////////// Ham tim kiem theo khoa co thu tu
    int searchorderlist(list &l, elem x, int (*comp)(elem, elem))
    {
    	nodeptr c = l.head;
    	l.pos = NULL;
    	while (c!=NULL && comp(x, c->data)>0)
    	{
    		l.pos = c;
    		c = c->next;
    	}
    	if (c!=NULL && comp(x, c->data)<0)
    		return 0;
    	return (c!=NULL);
    }
    
    ////////////////// Ham chen vao danh sach co thu tu
    void insertorder(list &l, elem x, int (*comp)(elem, elem))
    {
    	searchorderlist(l, x, comp);
    	insertlist(l, x, l.pos);
    }
    
    ////////////////// Ham xoa local
    void deletelist(list &l, nodeptr p)
    {
    	nodeptr t;
    	if (p == NULL)
    	{
    		t = l.head;
    		l.head = t->next;
    	}
    	else
    	{
    
    		t = p->next;
    		p->next = t->next;
    	}
    	if (t->next == NULL)
    		l.rear = p;
    	l.count--;
    }
    
    ////////////////// Ham xoa phan tu x
    void deletitem(list &l, elem x, int (*comp)(elem, elem))
    {
    	if (searchlist(l, x, comp))
    		deletelist(l, l.pos);
    }
    
    ////////////////// Ham xoa dau
    void deletehead(list &l)
    {
    	deletelist(l, NULL);
    }
    
    ////////////////// Ham xoa sau hien hanh
    void deletepos(list &l)
    {
    	deletelist(l, l.pos);
    }
    
    ////////////////// Ham khoi dau danh sach
    void start(list &l)
    {
    	l.pos = l.head;
    }
    
    ////////////////// Ham chuyen sang phan tu ke tiep
    void skip(list &l)
    {
    	if (l.pos == NULL)
    		l.pos = l.head;
    	else
    		l.pos = l.pos->next;
    }
    
    
    ////////////////// Ham lay du lieu hien hanh
    void getdata(list l, elem &x)
    {
    	memcpy(&x, &l.pos->data, sizeof(elem));
    }
    
    ////////////////// Ham kiem tra het danh sach
    int end(list l)
    {
    	return (l.pos == NULL);
    }
    
    ////////////////// Ham tra ve so phan tu
    int numofitem(list l)
    {
    	return l.count;
    }
    file SDLIST.CPP
    Mã:
    #include <stdio.h>
    typedef int  elem;
    #include "LIST.CPP"
    int ss(int x, int y)
    {
    	return x-y;
    }
    
    void nhap(list &l)
    {
    	int x;
    	createlist(l);
    	do {
    		scanf("%d", &x);
    		if (x>0)
    			insertrear(l, x);
    	} while (x>0);
    }
    
    void nhapthutu(list &l)
    {
    	int x;
    	createlist(l);
    	do {
    		scanf("%d", &x);
    		if (x>0)
    			insertorder(l, x, ss);
    	} while (x>0);
    }
    
    void in(list l)
    {
    	int x;
    	start(l);
    	while (!end(l))
    	{
    		getdata(l, x);
    		printf("%4d", x);
    		skip(l);
    	}
    }
    void main()
    {
    	list l;
    	printf("
    Nhap day so>0:");
    	nhapthutu(l);
    	printf("
    In day so vua nhap:");
    	in(l);
    }
    sau đó run file SDLIST.CPP nhưng chỉ hiện lên dòng lệnh thui, không hiện lên kết quả tính...

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nó hiện ra dòng lệnh là sao hả em?nó có báo lỗi gì ko?Nếu là file header thì em nên đặt là .h chứ ko phải .cpp. Máy mình ko co BC nên anh ko test đc,code dài dài nên ngại đọc quá :P

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nghĩa là em include 1 file định nghĩa list.cpp .
    Vi dụ : cho 1 list các số và sắp xếp theo thứ tự tăng dần hoặc giảm dần. Nhưng khi gõ xong thì không hiện ra kết quả sắp xếp. Không có lỗi. Em dùng BC++ 5.02. Anh nào chỉ giúp em với.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •