User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 9 của 9

Chủ đề: Cho em hỏi bài pascal này nha !?

  1. #1
    svBK's Member Avatar của sun_flower1802
    Tham gia ngày
    Nov 2006
    Bài gửi
    48

    Mặc định Cho em hỏi bài pascal này nha !?

    Đề bài:để quản lý cán bộ giảng dạy trong trường người ta đã nhập DL cho 1 tệp định kiểu có tên canbo.txt của các bản ghi được khai báo:
    canbo=record
    hoten:string[50];
    ns:integer;
    end;
    a,đọc DL tu tep canbo.txt và in ra màn hình tất cả các cán bộ có độ tuổi từ 25-60 tính từ năm 2000 theo dạng hoten:50 kí tự,ns:4 kí tự
    b,nhap 1 năm sinh từ bàn phím và in ra màn hình thông báo xem trường có ai sinh năm đó hay ko?

    =======================
    Còn dưới đây là 3 cách làm:
    Cách 1:
    program quan_ly;
    type canbo=record
    hoten:string[50];
    ns:integer;
    end;
    var A:array[1..10] of canbo; n,i:integer; x:integer;
    f:file of canbo;
    begin
    assign(f,'canbo.txt'); reset(f); n:=0;
    while not EOF(f) do
    begin
    i:=i+1;
    read(f,A[i]);
    if (2000-A[i].ns>25) and (2000-A[i].ns<60) then
    writeln('danh sach cac can bo tu 25-60 la: ',A[i].hoten:50,A[i].ns:4);

    end;
    write('xet nhung nguoi sinh nam:'); readln(x);
    for i:=1 to n do
    if A[i].ns=x then writeln('trong truong co can bo',A[i].hoten:50,A[i].ns:4,'sinh vao nam do')
    else writeln('ko co can bo nao sinh vao nam ',x);
    readln;
    end.
    =======================
    Cách 2:
    type canbo=record hoten:string[50];
    ns:integer;
    end;
    var f:file of canbo; a:array[1..10] of canbo;
    tg:canbo;
    i,n,nam:integer;
    co:boolean;
    procedure viet(a:canbo);
    begin
    writeln(a.hoten:50,a.ns:4);
    end;
    procedure doc;
    begin
    assign(f,'canbo.txt'); reset(f); n:=0;
    while not EOF(f) do
    begin n:=n+1;
    read(f,a[n]);
    end; close(f);
    end;
    begin
    doc;
    writeln(' hoten nam sinh ');
    for i:=1 to n do
    if (2000-a[i].ns<=60)and (2000-a[i].ns>25) then viet(a[i]);
    co:=false;
    write('nhap nam sinh can tim :'); readln(nam);
    for i:=1 to n do
    if a[i].ns=nam then
    begin viet(a[i]);
    co:=true;
    end;
    if not co then writeln(' ko co nguoi sinh nam',nam,'!');
    readln;
    end.
    =====================
    Cách 3:
    type canbo=record hoten:string[50];
    ns:integer;
    end;
    var f:file of canbo; a:canbo;
    i,n,nam:integer;
    begin
    assign(f,'canbo.txt'); reset(f);
    while not EOF(f) do
    begin with a do
    begin
    read(f,a);
    if (2000-ns<=60)and (2000-ns>=25) then writeln(hoten:50,ns:4);
    end;
    end; close(f);
    write('nhap nam sinh can tim :'); readln(nam);
    with a do
    if ns=nam then writeln(hoten:50,ns:4)
    else writeln(' ko co nguoi sinh nam',nam,'!');
    readln;
    end.
    ========================

    Theo như em suy luận thì cả 3 cách trên đều đúng và dùng F8 thì ko báo lỗi gì cả nhưng khi chạy thì "Disk read error".Phiền các tiền bối chỉ bảo dùm em xem
    1.Ba cách làm trên có sai gì ko?
    2.Lỗi báo "Disk read error" là vì sao và làm thế nào để khắc phục?
    3.Trong 3 cách làm trên nên làm theo cách nào?
    Note: thứ 6 này em thi rồi nên mong được sự chỉ bảo tận tình của các tiền bối :biggrin:
    Em cảm ơn nhìu nhìu !

  2. #2
    Quân Nhân Danh Dự Avatar của truong87bk
    Tham gia ngày
    Jan 2006
    Bài gửi
    717

    Mặc định

    Hì bạn cần tạo file canbo.txt ở trong thư mục gốc của Pascal. Còn nếu tạo ở ổ C thì trong chương trình cần chỉ rõ đường dẫn.

  3. #3
    svBK's Member Avatar của Páo
    Tham gia ngày
    Jan 2007
    Bài gửi
    54

    Mặc định

    Sai hay ko chạy thử thì biết Cách nào sách đại cương hoặc thấy hướng dẫn thì làm theo, vì quan trọng khi thi là thầy chấm và dễ dàng hiểu -> dễ dàng chấp nhận.

  4. #4
    Quân nhân danh dự
    Tham gia ngày
    Oct 2004
    Bài gửi
    1.134

    Mặc định

    bạn chú ý là khi làm việc với file thì phải chỉ rõ đường dẫn của file, nếu file chưa rõ thì phải tạo file.

    Khi lập tình nên chú thích vào vửa làm cho mình dễ kiểm tra vừa giúp người khác có thể hiểu được ý của bạn và cả khi đi thi cũng thế. Các thầy cô chấm nhiều bài nên ko thể đọc kĩ cách làm của bạn được và khi nó càng sáng tạo thì càng dễ mất điểm.

  5. #5
    svBK's Member Avatar của sun_flower1802
    Tham gia ngày
    Nov 2006
    Bài gửi
    48

    Mặc định

    Hì tình hình là hum nay em thi xong roài các bác ạ! Em chỉ nhận ra 1 điều là với cái kiểu có học mà ko có hành như ở BK nói riêng và Việt Nam nói chung thì ko có chi là đau đáu cho khổ !
    khi nó càng sáng tạo thì càng dễ mất điểm
    .Đúng thế,nên em chả cần biết cái bài thi khi chạy nó có báo lỗi hay ko nhưng cứ trình tự em làm,cam đoan rằng 90% số câu đạt điểm tối đã đều ko hoàn hảo và chạy ắt sẽ báo lỗi .hì !

  6. #6
    Quân nhân danh dự
    Tham gia ngày
    Oct 2004
    Bài gửi
    1.134

    Mặc định

    Quote Nguyên văn bởi sun_flower1802
    Hì tình hình là hum nay em thi xong roài các bác ạ! Em chỉ nhận ra 1 điều là với cái kiểu có học mà ko có hành như ở BK nói riêng và Việt Nam nói chung thì ko có chi là đau đáu cho khổ ! .Đúng thế,nên em chả cần biết cái bài thi khi chạy nó có báo lỗi hay ko nhưng cứ trình tự em làm,cam đoan rằng 90% số câu đạt điểm tối đã đều ko hoàn hảo và chạy ắt sẽ báo lỗi .hì !

    khi chấm một bài thi lập trình trên giấy thì ko ai chấm xem nó có chạy hay ko vì đến các thầy cô còn ko thể viêt 1 lần chạy ngay, mà chỉ chấm phương hướng, cách giải quyết, vậy cho nên chú thích là vô cùng quan trọng

  7. #7
    svBK's Member Avatar của Páo
    Tham gia ngày
    Jan 2007
    Bài gửi
    54

    Mặc định

    Chú thích, dâu ; cuối lệnh, thụt đầu dòng cho các câu điều kiẹn và vòng lặp... tất cả đều quan trọng,nó cho thấy bài làm của các cô chú dễ đọc dễ hiểu đến đâu (nói thật kể cả khi code trên máy mà viết ko dễ đọc thì cũng bị trừ điểm, vì nó gây khó khăn cho việc đọc và debug)
    Còn lỗi giải thuật thì tất nhiên là sẽ bị trừ, đừng mong các thầy ko nhìn ra. Thông thường các bài cho trong kiểm tra đại cương các thầy cô thuộc làu làu rồi, đảm bảo hầu hết các thầy cô code một lần là chạy ngon ngay. Ví dụ tìm số nguyên tố mà cho chạy từ 1 là chắc chắn có 1 kết quả sai: máy nó cho ra 1 cũng là số ntố Tớ chết con này nên nhớ mãi đấy!

  8. #8
    svBK's Newbie
    Tham gia ngày
    Oct 2007
    Bài gửi
    1

    Mặc định

    oái trời ơi thứ nhất :file canbo.txt phai đặt trong bộ cài ../bin
    không thì phải chỉ rõ đương dẫn (tệp để ở đâu) để đọc
    VD:'E:\canbo.txt'
    thứ hai : dây là tệp có kiểu làm sao bạn đọc tệp như vậy được
    hi`

  9. #9
    svBK's Newbie
    Tham gia ngày
    Oct 2007
    Bài gửi
    9

    Mặc định

    tui da doc qua cach 1 rui!! nhung ma ban quen mot dieu
    program quan_ly;
    type canbo=record
    hoten:string[50];
    ns:integer;
    end;
    var A:array[1..10] of canbo; n,i:integer; x:integer;
    f:file of canbo;
    begin
    assign(f,'canbo.txt'); reset(f); n:=0;
    while not EOF(f) do
    begin
    i:=i+1;
    read(f,A[i]);
    if (2000-A[i].ns>25) and (2000-A[i].ns<60) then
    writeln('danh sach cac can bo tu 25-60 la: ',A[i].hoten:50,A[i].ns:4);

    end;
    write('xet nhung nguoi sinh nam:'); readln(x);
    for i:=1 to n do
    if A[i].ns=x then writeln('trong truong co can bo',A[i].hoten:50,A[i].ns:4,'sinh vao nam do')
    else writeln('ko co can bo nao sinh vao nam ',x);
    readln;

    end.
    bien i ban chua khoi tao gia tri i=0 ma ban cho i:=i+1 thi sai roi!!!
    con o phan in ket qua: bien i o tren da di tuot len tren troi roi co the la 100,1000 khong chung. va mang ban khai bao co 10 thoi nen ban in tu 1 den 10 thi du lieu khong co tren mang.

+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Chủ đề tương tự

  1. Pascal!
    Gửi bởi EricTuan trong mục Lập Trình
    Trả lời: 60
    Bài cuối: 08-01-2006, 08:39 AM
  2. Giúp em bài Pascal này nữa!
    Gửi bởi EricTuan trong mục Các vấn đề CNTT khác
    Trả lời: 4
    Bài cuối: 15-12-2004, 03:58 PM
  3. Có ai giỏi Pascal không ?
    Gửi bởi Juventus trong mục Các vấn đề CNTT khác
    Trả lời: 8
    Bài cuối: 03-03-2004, 07:22 PM
  4. Xin Pascal 5.5
    Gửi bởi vtm trong mục Các vấn đề CNTT khác
    Trả lời: 2
    Bài cuối: 14-07-2003, 12:10 PM
  5. Pascal-những điều đn Giản
    Gửi bởi newton trong mục Viện Toán tin ứng dụng
    Trả lời: 27
    Bài cuối: 05-04-2003, 05:44 PM

Từ khóa (Tag) của chủ đề này

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


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube