Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: [C] Cần hướng dẫn chi tiết và code tham khảo (nếu được) của các bài tập sau

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    5

    Mặc định [C] Cần hướng dẫn chi tiết và code tham khảo (nếu được) của các bài tập sau

    Xin chào toàn thể các anh, em là sinh viên đang theo học tại trường KHTN của Thành Phố Hồ Chí Minh. Em có một vài bài tập muốn xin hướng dẫn chi tiết và nếu có thể xin các anh cho anh xin code tham khảo.

    Đây là các bài tập theo em là rất khó :

    1 . Nhập vào số nguyên N>=2,in ra nội dung của tập tin chứa cluster N với điều kiện N không phải là cluster ban đầu .

    2. Thay đổi tên tập tin thư mục có chứa danh sách cluster tạo thành cấp số cộng

    Vd : 2 4 5 6

    3 5 7 9

    2 3 4 5

    3 . Từ một tập tin , phân chia tập tin vào thành N tập tin con có nội dung có dung lựợng 48kb theo quy ứơc.

    Tập tin gốc -> A-1,A-2.A-3…..

    4 . Từ N tập tin con đã được phân ra như trên ghép lại thành 1 tập tin
    Ghi chú :

    Tất cả đều phải theo tác trên bảng Fat+RDET, không dùng hàm có sẵn.

    Nếu ai có code tham khảo của bài nào thì cho bài đó. Trong khi chờ đợi các anh, em xin chân thành cảm ơn trước.

  2. #2
    Ngày gia nhập
    11 2006
    Nơi ở
    Tiền Giang
    Bài viết
    28

    Hi bạn, chắc bạn đang học môn hệ điều hành nhỉ.

    Mình lục trong mớ CD cũ tìm không ra mấy bài này. Mà hồi đó tui học cũng hem khó như vầy. He he. Tui chỉ có mí đoạn code làm việc trên RDET và FAT sau thôi. Hy vọng giúp được bạn !

    Code hơi bị "bưởi" bạn đừng cười nha

    + Doc bang RDET bang thu muc goc cua dia va luu vao 1 file

    Thuat giai :

    Muon doc RDET truoc het thi phai :
    - Doc Bootsector de lay cac tham so trong bang tham so
    - Bang thu muc goc co bao nhieu sector.
    - Sector bat dau cua RDET
    = Sector truoc FAT + Kich thuoc 1 bang FAT * So luong bang FAT
    - Dung ham
    absread (so hieu o dia,so sector can doc cua RDET,sector bat dau cua RDET)
    - Ket thuc chuong trinh
    -------------------------------------------------------------------------
    Bootsector | So sector trong | So luong bang FAT | RDET |
    -------------------------------------------------------------------------
    \----------------v-----------------/|
    So sector danh rieng
    (so sector truoc FAT)

    C Code:
    1. #include <stdio.h>
    2. #include <stdLib.h>
    3. #include <conio.h>
    4. #include <dos.h>
    5. #include <alloc.h>
    6.  
    7. void Doc_RDET()
    8. {
    9.     unsigned char buffer[512];
    10.     unsigned int  o_dia;
    11.     char filename[50];
    12.     FILE *f;
    13.  
    14.     printf ("\nNhap vao o dia can doc RDET (0:A;2:B,....): ");
    15.     scanf ("%d",&o_dia);
    16.  
    17.     int kq=absread(o_dia,1,0,&buffer);
    18.     if (kq!=0)
    19.     {
    20.         printf ("\nDisk has a problem");
    21.         exit(1);
    22.     }
    23.     else
    24.     {
    25.         //So entry tren RDET
    26.         unsigned int Number_ENTRY=buffer[0x12]*0x100+buffer[0x11];
    27.  
    28.         //So sector cua RDET
    29.         unsigned int Number_sector_ENTRY=(Number_ENTRY*32)/512;
    30.  
    31.         //So sector danh rieng (so sector truoc bang FAT)
    32.         unsigned int Sector_reserve=buffer[0x0F]*0x100+buffer[0x0E];
    33.  
    34.         //So luong bang FAT
    35.         unsigned int Number_FAT=buffer[0x10];//So bang FAT
    36.  
    37.         //Kich thuoc 1 bang FAT
    38.         unsigned int Size_one_FAT=buffer[0x17]*0x100+buffer[0x16];
    39.  
    40.         //Tong so sector truoc RDET
    41.         unsigned int Total_before_RDET=Sector_reserve+Number_FAT*Size_one_FAT;
    42.  
    43. //      printf ("\nVi tri cua RDET %d co kich thuoc la: %d",Total_before_RDET,Number_ENTRY);
    44.  
    45.         unsigned char *buf;
    46.         buf=(unsigned char*)malloc(Number_sector_ENTRY*512);
    47.  
    48.         if (buf==NULL)
    49.             printf ("\nKhong the cap phat bo nho cho buf\n");
    50.         else
    51.         {
    52.         kq=absread(o_dia,Number_sector_ENTRY,Total_before_RDET,buf);
    53.         if(kq!=0)
    54.         {
    55.             printf ("\nKhong the doc duoc bang thu muc goc RDET\n");
    56.             exit(1);
    57.         }
    58.         else
    59.         {
    60.             printf ("\nNhap vao ten tap tin can luu: ");
    61.             fflush(stdin);
    62.             gets(filename);
    63.             if (f==NULL)
    64.                 printf ("\nKhong the luu duoc vao file");
    65.             else
    66.             {
    67.                 f=fopen(filename,"wb");
    68.                 fwrite(buf,sizeof(unsigned char),Number_sector_ENTRY*512,f);
    69.                 printf ("\nDa luu xong\n");
    70.                 fclose(f);
    71.             }
    72.         }
    73.     }
    74.     }
    75. }
    76. void main()
    77. {
    78.     clrscr();
    79.     printf ("\n\t\tDOC BANG THU MUC GOC VA LUU VAO MOT FILE\n\n\n");
    80.     Doc_RDET();
    81.     getch();
    82. }

  3. #3
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Bài 3 bài 4 cũng đơn giản thôi. bạn tự làm đi. Có gì post code mình sửa cho. Tư tưởng như thế này:

    -Bài 3:
    B1:x = 1;
    B2:Mở file gốc để đọc dưới dạng nhị phân
    B3:Mở file mới để ghi với tên A-x, cũng dạng nhị phân
    Đọc 48*1024 (hoặc ít hơn nếu hết) kí tự từ file gốc rùi gi vào file A-x
    Nếu file gốc vẫn chưa hết thì x++ rùi quay lại B3:
    Nếu hết thì là xong.

    -Bài 4:
    Mở file để chép dữ liệu từ n file đó dưới dạng nhị phân
    Cho i chạy từ 1 tới n
    -Mở file để đọc A-i dưới dạng nhị phân
    -Chép toàn bọ từ A-i -> file out

    Xong

  4. #4
    Ngày gia nhập
    01 2007
    Bài viết
    5

    Bài 3 bài 4 cũng đơn giản thôi. bạn tự làm đi. Có gì post code mình sửa cho. Tư tưởng như thế này:

    -Bài 3:
    B1:x = 1;
    B2:Mở file gốc để đọc dưới dạng nhị phân
    B3:Mở file mới để ghi với tên A-x, cũng dạng nhị phân
    Đọc 48*1024 (hoặc ít hơn nếu hết) kí tự từ file gốc rùi gi vào file A-x
    Nếu file gốc vẫn chưa hết thì x++ rùi quay lại B3:
    Nếu hết thì là xong.

    -Bài 4:
    Mở file để chép dữ liệu từ n file đó dưới dạng nhị phân
    Cho i chạy từ 1 tới n
    -Mở file để đọc A-i dưới dạng nhị phân
    -Chép toàn bọ từ A-i -> file out

    Xong
    Em thắc mắc ở bước 3 của bài 3. Có ai có code bước 3 không?
    Cái bài 4 coi vậy mà sao thấy đơn giản thế ta.
    Nhưng các bác có đọc ghi chú này chưa :
    Ghi chú :

    Tất cả đều phải theo tác trên bảng Fat+RDET, không dùng hàm có sẵn.

Các đề tài tương tự

  1. Bài tập C++ Xin code tham khảo, học hỏi !
    Gửi bởi thevu12 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 08-06-2013, 11:34 PM
  2. Bài tập C cách cộng 2 thời gian trong C, anh tham khảo chửa cái code giúp em!
    Gửi bởi tanphuc113 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 29-10-2011, 05:15 PM
  3. Mạng phép xin code của anh em để tham khảo
    Gửi bởi shumo trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 25-05-2010, 01:32 AM
  4. code phần mềm chơi nhạc bằng C#. Ai có cho mình tham khảo?
    Gửi bởi luckythief trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 04-03-2010, 05:28 PM
  5. ai có code sắp xếp danh sách họ tên cho xem tham khảo với
    Gửi bởi bqonline trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 11-03-2009, 08:47 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn