Trang 6 của 6 Đầu tiênĐầu tiên ... 456
Kết quả 51 đến 59 của 59
  1. #51
    Ngày tham gia
    Dec 2015
    Bài viết
    2
    Đây là 1 bài mẫu, em cứ xem rồi nâng cấp nó lên cho hoàn chỉnh. Anh đang viết phần Sort (Sắp xếp), vì thời gian hạn hẹp quá nên anh post lên để em phát triển nó. Chúc em học tốt.

    Mã:
    Program HappySoftGroup_diendantinhoc;
    
            Uses Crt, Dos;
    
            Const Menu : Array[1..5] Of String = ('Tao Co So Du Lieu  ',
                                                  'Nhap Them HS Moi   ',
                                                  'Tim Kiem, Sua Ho So',
                                                  'In Danh Sach HS    ',
                                                  'Ket Thuc Cong Viec ');
    
            Type Nguoi = Record
                 HoTen : String[25];
                 Diem  : Array[1..4] Of Real;
                 Vt    : Byte;
                 End;
    
            Var HS : Array[1..100] Of Nguoi;
                i, j, N : Byte;
                D : Real;
                F : File Of Nguoi;
                Hocsinh : Nguoi;
                Kt, Chon : Char;
    
    Procedure Setcusor(bot, top : Byte);
    Var regs : Registers;
    Begin
         regs.AH := 1;
         regs.CH := bot;
         regs.CL := top;
         Intr($10, regs);
    End;
    
    Procedure WriteXY(x, y, MauC, MauN : Byte; ST : String);
    Var Maucu : Byte;
    Begin
         Maucu := TextAttr;
         TextColor(MauC);
         TextBackground(MauN);
         GotoXY(x, y);
         Write(ST);
         TextAttr := Maucu;
    End;
    
    Procedure DoubleBox(x1, y1, x2, y2 : Byte);
    Var i : Byte;
    Begin
         GotoXY(x1, y1); Write(#201);
         For i := x1+1 To x2-1 Do Write(#205);
         GotoXY(x1, y2); Write(#200);
         For i := x1+1 To x2-1 Do Write(#205);
         GotoXY(x2, y1); Write(#187);
         GotoXY(x2, y2); Write(#188);
         For i := y1+1 To y2-1 Do
         Begin
              GotoXY(x1, i); Write(#186);
              GotoXY(x2, i); Write(#186);
         End;
    End;
    
    Procedure OpenFile;
    Begin
         Assign(F, 'HOSO.DAT');
         {$I-} Reset(F); {$I+}
         If IOResult <> 0 Then
         Begin
              Writeln('Khong co CSDL tren dia');
              Exit;
         End;
    End;
    
    Procedure Input;
    Begin
         Repeat
              N := FileSize(F);
              Write('Nhap HO TEN HS thu ',N+1,' : ');
              With HocSinh Do
              Begin
                   Readln(HoTen);
                   While Length(HoTen) < 20 Do HoTen := HoTen + ' ';
                   D := 0;
                   For j := 1 To 3 Do
                   Begin
                        Write('Diem mon ',j,': ');
                        Readln(Diem[j]);
                        D := D + Diem[j];
                   End;
                   D := D/3;
                   Diem[4] := D;
                   Vt := 1;
              End;
              Seek(F, FileSize(F));
              Write(F, HocSinh);
              Write('Co tiep tuc khong (C/K)? ');
              Readln(Kt);
         Until UpCase(Kt) = 'K';
    End;
    
    Procedure Sort;
    Begin
         OpenFile;
         i := 0;
         While Not EOF(F) Do
         Begin
              Read(F, HocSinh);
              Inc(i);
              HS[i] := HocSinh;
         End;
         N := i;
         For i := 1 To N Do HS[i].VT := 1;
         For i := 1 To N Do
              For j := 1 To N Do
              If HS[i].Diem[4] < HS[j].Diem[4] Then Inc(HS[i].VT);
         For i := 1 To N Do
         Begin
              Seek(F, i-1);
              Write(F, HS[i]);
         End;
         Close(F);
    End;
    
    Procedure NewFile;
    Begin
         Assign(F, 'HOSO.DAT');
         {$I-} Reset(F); {$I+}
         If IOResult = 0 Then
         Begin
              Write('CSDL se bi xoa. Co tiep tuc khong (C/K)? ');
              Readln(Kt);
              If UpCase(Kt) = 'K' Then
              Begin
                   Close(F);
                   Exit;
              End;
         End;
         ReWrite(F);
         Input;
         Close(F);
    End;
    
    Procedure AppendFile;
    Begin
         OpenFile;
         Input;
         Close(F);
    End;
    
    Procedure Print;
    Begin
         Sort;
         OpenFile;
         Clrscr;
         Writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
         Writeln('º                        DANH SACH HOC SINH                     º');
         Writeln('ÌÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍ͹');
         Writeln('º STT º      Ho & Ten        º Van  º Toan º Eng  º DTB  º  VT  º');
         Writeln('ÌÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍ͹');
         i := 0;
         Repeat
         Begin
              Read(F, HocSinh);
              Inc(i);
              With HocSinh Do
              Begin
                   Write('º',i:3,'  ³ ',HoTen,' ³');
                   For j := 1 To 4 Do Write(Diem[j]:5:1,' ³');
                   Writeln(Vt:3,'   º');
              End;
              If not EOF(F) Then Writeln('Ç-Ä---Å----------------------Å------Å------Å------Å------Å------¶');
         End;
         Until EOF(F);
         Writeln('ÈÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍͼ');
         Writeln('Danh Sach nay co ',i,' hoc sinh');
         Close(F);
         Readln;
    End;
    
    Procedure Fix;
    Begin
         OpenFile;
         Repeat
              Write('+ Nhap so thu tu: ');
              Readln(i);
              Dec(i);
              If i >= FileSize(F) Then
              Begin
                   Write('=> Tap tin nay chi co ',FileSize(F),' record.');
                   Readln;
                   Close(F);
                   Exit;
              End;
              Writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
              Writeln('º                       HOC SINH BAN CAN TIM                    º');
              Writeln('ÌÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍ͹');
              Writeln('º STT º      Ho & Ten        º Van  º Toan º Eng  º DTB  º  VT  º');
              Writeln('ÌÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍ͹');
              Seek(F, i);
              Read(F, HocSinh);
              With HocSinh Do
              Begin
                   Write('º',i:3,'  º ',HoTen,' º');
                   For j := 1 To 4 Do Write(Diem[j]:5:1,' º');
                   Writeln(Vt:3,'   º');
                   Write('ÈÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍͼ');
                   Writeln;
                   Writeln('+ Ban hay chon muc can sua: ');
                   Writeln('  1. Sua Ho va Ten.');
                   Writeln('  2. Sua Diem mon hoc.');
                   Write('=> Chon 1 hoac 2: ');
                   Readln(Chon);
                   Case Chon Of
                        '1' : Begin
                                  Write('   + Nhap Ho va Ten: ');
                                  Readln(HoTen);
                                  While Length(HoTen) < 20 Do HoTen := HoTen + ' ';
                              End;
                        '2' : Begin
                                  D := 0;
                                  For j := 1 To 3 Do
                                  Begin
                                       Write('   + Diem mon ',j,': ');
                                       Readln(Diem[j]);
                                       D := D + Diem[j];
                                  End;
                                  D := D/3;
                                  Diem[4] := D;
                              End;
                   End;
              End;
              If (Chon = '1') Or (Chon = '2') Then
              Begin
                   Seek(F, i);
                   Write(F, HocSinh);
              End;
              Write('Co tiep tuc khong (C/K)? ');
              Readln(Kt);
              Clrscr;
         Until UpCase(Kt) = 'K';
         Close(F);
    End;
    
    Procedure Menu1(cd, dd, SoMenu : Byte);
    Var chon, tam, i : Byte;
        Kt : Char;
    Begin
         TextAttr := 16*Blue+Yellow;
         chon := 1;
         tam := 1;
         Repeat
              SetCusor(32,3);
              ClrScr;
              DoubleBox(cd-1, dd, cd+Length(Menu[1]), dd+1+SoMenu);
              WriteXY(cd, dd-1, White, Red, 'Hay chon cac muc sau');
              For i := 1 To SoMenu Do
              WriteXY(cd, dd+i, Black, LightCyan, Menu[i]);
              WriteXY(cd, dd+chon, White, Red, Menu[chon]);
              tam := chon;
              Kt := ReadKey;
              If Kt = #13 Then
              Begin
                   ClrScr;
                   SetCusor(9,10);
                   Case chon Of
                        1 : NewFile;
                        2 : AppendFile;
                        3 : Fix;
                        4 : Print;
                        5 : Exit;
                   End;
              End;
              If Kt = #0 Then Kt := ReadKey;
              Case Kt Of
                   #72 : If chon > 1 Then Dec(chon) Else chon := SoMenu;
                   #80 : If chon < SoMenu Then Inc(chon) Else chon := 1;
              End;
         Until Kt = #27;
    End;
    
    BEGIN
         Menu1(32,10,5);
    END.
    Chắc em sẽ thắc mắc các kí tự lạ kia là gì. Em yên tâm, nó là những ký tự trong bảng mã ascii thôi. Cứ copy rồi dán vào file .txt sau đó đổi đuôi thành .pas mở lên là sẽ biết rõ.

  2. #52
    Ngày tham gia
    Aug 2015
    Bài viết
    2
    @HSG:Em không hiểu gì hết .Anh làm theo kiến thức lớp 11 đi , mà đề có bảo cần nhập H/s mới hay sửa hồ sơ đâu ạ .Em sắp KT 45' rồi , anh giúp em đi
    @Ga Vang : Tớ sửa theo ý bạn rồi nhưng nó vẫn báo lõi ở chỗ
    A:=A[i+1]; ( nó bảo S ở dấu ";" )
    Sửa là A.Tong:=A[i+1].Tong; thì vẫn báo lỗi nhưng vậy

  3. #53
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Điểm chuẩn tuyển sinh của trường được tìm bằng cách nào em? Đề vẫn chưa rõ nhỉ. Anh sửa sơ sơ lại bài của em rồi. Tham khảo mà chỉnh lại nha em. Chúc em học tốt.

    Mã:
    Program HSG_diendantinhoc;
    
            Uses Crt;
    
            Type Hocsinh = Record
                    SBD   : String[3];
                    Hoten : String[25];
                    Ngaysinh : String;
                    Toan, Ly, Hoa, Tong : Real;
                 End;
    
            Var A : Array[1..50] Of Hocsinh;
                i, j : Byte;
                t : Hocsinh;
    BEGIN
            ClrScr;
            For i := 1 to 4 do
            With A[i] Do
            Begin
                    Writeln('[Hoc sinh thu ',i,']');
                    Write('+ So bao danh: '); Readln(SBD);
                    Write('+ Ho ten: ');      Readln(Hoten);
                    Write('+ Ngay sinh: ');   Readln(Ngaysinh);
                    Write('+ Toan: ');        Readln(Toan);
                    Write('+ Ly: ');          Readln(Ly);
                    Write('+ Hoa: ');         Readln(Hoa);
                    Tong := Toan + Ly + Hoa;
            End;
            For i := 1 to 4 - 1 do
            For j := i + 1 to 4 do
                    If A[i].Tong < A[j].Tong then
                    Begin
                            t     := A[i];
                            A[i] := A[j];
                            A[j] := t;
                    End;
            Writeln('=> STT hoc sinh sau khi duoc sap xep la: ');
            For i := 1 to 4 do writeln(A[i].SBD);
            Writeln('=> Diem chuan cua truong: ',A[4].Tong:0:0);
            Readln
    END.

  4. #54
    Ngày tham gia
    Nov 2015
    Bài viết
    1
    Trích dẫn Gửi bởi HappySoftGroup
    Điểm chuẩn tuyển sinh của trường được tìm bằng cách nào em? Đề vẫn chưa rõ nhỉ. Anh sửa sơ sơ lại bài của em rồi. Tham khảo mà chỉnh lại nha em. Chúc em học tốt.
    Điểm chuẩn thì = tổng điểm của thí sinh cuối cùng được trúng tuyển ạ .Ở bài này là điểm chuẩn của trường là tổng điểm của thí sinh có tổng điểm cao thứ 2 trong 4 thí sính dự thi

    Em vừa chạy thử chương trình của anh xong
    kết quả điểm chuẩn của trường sai ạ và anh này .em muốn sau khi sắp xếp tổng điểm của các thí sinh từ cao xuống thấp xong rồi , sau đó in ra màn hình tất cả các thông thông tin( họ tên , SBD, điểm thi các môn ,.) về 2 số thí sinh có tổng điểm cao nhất trong 4 thí sinh dự thi thì làm thế nào ạ

  5. #55
    Ngày tham gia
    Nov 2015
    Bài viết
    2
    + Uhm, điểm trúng tuyển lúc nãy anh đâu biết. Nếu vậy thì sắp xếp từ cao xuống thấp xong lấy điểm của thí sinh kề cuối là được.
    + Em tham khảo bài viết lớn của anh í, cách xuất ra nếu em không thích ô vuông thì chỉ cần bỏ những dấu đi là được.
    + Còn 2 thí sinh cao nhất thì xuất thí sinh thứ nhất và thứ 2 là được.

  6. #56
    Ngày tham gia
    Aug 2015
    Bài viết
    3
    Trích dẫn Gửi bởi HappySoftGroup
    + Uhm, điểm trúng tuyển lúc nãy anh đâu biết. Nếu vậy thì sắp xếp từ cao xuống thấp xong lấy điểm của thí sinh kề cuối là được.
    + Em tham khảo bài viết lớn của anh í, cách xuất ra nếu em không thích ô vuông thì chỉ cần bỏ những dấu đi là được.
    + Còn 2 thí sinh cao nhất thì xuất thí sinh thứ nhất và thứ 2 là được.
    Nhưng bài đó em mà làm trong bài kiểm tra thì thầy gạch hết mất. Bọn em đâu được học các cú pháp mà anh đã dùng ạ .Lạ hoắc đối với em

  7. #57
    Ngày tham gia
    Aug 2015
    Bài viết
    5
    Trích dẫn Gửi bởi doremon_mon
    Nhưng bài đó em mà làm trong bài kiểm tra thì thầy gạch hết mất. Bọn em đâu được học các cú pháp mà anh đã dùng ạ .Lạ hoắc đối với em
    Đó toàn là những kiến thức lớp 11 hết á em. Lúc anh học thì có phát hiện nào mới là thầy cô đều hoan nghên, chẳng ai dám gạch hay là bảo thủ cả. Thầy cô nhưng nếu thầy cô sai là anh phản đối. [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
    Chắc em chưa biết lệnh With ... Do phải không?
    Ví dụ:
    A.ten := 'abc';
    là không có lệnh trên. Khi em chèn vào With A Do ten := 'abc';.
    Đó. Nó chỉ giúp rút gọn câu lệnh, không rườm rà và gây khó nhìn.

  8. #58
    Ngày tham gia
    Nov 2015
    Bài viết
    2
    Trích dẫn Gửi bởi HappySoftGroup
    Đó toàn là những kiến thức lớp 11 hết á em. Lúc anh học thì có phát hiện nào mới là thầy cô đều hoan nghên, chẳng ai dám gạch hay là bảo thủ cả. Thầy cô nhưng nếu thầy cô sai là anh phản đối. [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
    Chắc em chưa biết lệnh With ... Do phải không?
    Ví dụ:
    A.ten := 'abc'; là không có lệnh trên. Khi em chèn vào With A Do ten := 'abc';.
    Đó. Nó chỉ giúp rút gọn câu lệnh, không rườm rà và gây khó nhìn.


    Chỗ đó em hiểu mà anh
    Em tưởng anh bảo em làm như bài dài ở trên chứ.Bài đó các cú pháp bọn em mới chưa được học ạ

  9. #59
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG] Không có cái nào hết em à. Ngoại trừ 1 cái là regs. Còn mấy cái kia là chương trình con anh viết ra nên có cấu trúc vậy. Anh chắc chắn rằng em có thể sử dụng chương trình trên trong lớp học được rồi nhưng vấn đề là hơi dài và khó quản lí hết. [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

Trang 6 của 6 Đầu tiênĐầu tiên ... 456

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
  •