Các bài tập Pascal nâng cao dành cho thi Tỉnh!

Hãy tìm kiếm trước khi HỎI hoặc ĐĂNG BÀI




kết quả từ 1 tới 5 trên 5
  1. #1
    Người Đóng Góp Hàng Đầu Avatar của HappySoftGroup
    Gia nhập
    May 2008
    Nơi cư ngụ
    Tp. Cam Ranh - Khánh Hòa
    Bài gởi
    2,261

    Mặc định Các bài tập Pascal nâng cao dành cho thi Tỉnh!

    Trung tâm dịch vụ

    Có N địa điểm dân cư đánh số từ 1 đến N. Giữa M cặp địa điểm trong số N địa điểm nói trên có tuyến đường nối chung. Người ta cần xây dựng một trung tâm dịch vụ tổng hợp tại một địa điểm hoặc là trùng với một trong số các địa điểm dân cư hay là nằm trên tuyến đường nối 2 địa điểm dân cư hay là nằm trên tuyến đường nối 2 địa điểm nào đó, sao cho tổng khoảng cách từ trung tâm dịch vụ đến N địa điểm dân cư là nhỏ nhất. Ta gọi khoảng cách giữa 2 địa điểm là độ dài đường đi ngắn nhất nối chúng. Giả sử rằng N địa điểm trên liên thông với nhau.
    Dữ liệu vào: Cho trong File TRUNGTAM.INP gồm M+1 dòng:
    + Dòng 1: chứa 2 số N và M.
    + Dòng i+1 (1<=i<=M) ghi 3 số nguyên dương: hai số đầu là chỉ số của hai địa điểm dân cư được nối nhau bởi tuyến đường này, còn số thứ 3 là độ dài của tuyến đường.
    Dữ liệu ra là số nguyên dương.
    Kết quả: Xuất ra File TRUNGTAM.OUT thông báo vị trí trung tâm dịch vụ và tổng khoảng cách từ trung tâm dịch vụ đến các địa điểm dân cư. Nếu điểm tìm được nằm trên tuyến đường thì cần chỉ rõ 2 đầu của tuyến đường và khoảng cách từ địa điểm xây dựng đến đầu thứ nhất.
    Ví dụ:
    Code:
              TRUNGTAM.INP             TRUNGTAM.OUT
              6 7                                  Trung tam dich vu dat tai diem 1
              1 2 3                               Tong khoang cach la 19
              2 3 4 
              1 4 2
              4 5 5
              5 6 1
              5 1 3
              3 6 4
    Chúc các bạn luyện tập tốt!


    DMCA.com Protection Status




    Chia sẻ bài viết...



    Copy đoạn dưới và gửi cho bạn bè qua Yahoo!
    Link bài viết Diễn Đàn Tin Học by QRCode
    ...♥.♥.♥..:: Chúc Tất cả các bạn thành công ::..♥.♥.♥...
    ---------o0o---------
    Chúc bạn vui vẻ̉ khi đến với DIENDANTINHOC.VN
    ============>>><<<============

  2. #2
    Thành viên nhiệt tình Avatar của hang_vt
    Gia nhập
    Jun 2008
    Nơi cư ngụ
    Vũng Tàu
    Bài gởi
    373

    Mặc định

    thi tỉnh đâu có thi QHĐ , thi quay lui thôi

  3. #3
    Người Đóng Góp Hàng Đầu Avatar của HappySoftGroup
    Gia nhập
    May 2008
    Nơi cư ngụ
    Tp. Cam Ranh - Khánh Hòa
    Bài gởi
    2,261

    Mặc định

    Thôi thì mình post code cho các bạn tham khảo nếu muốn biết thêm nhá!
    Code:
    Uses Crt;
    Const maxN = 50;
          FI = 'TRUNGTAM.INP';
          FO = 'TRUNGTAM.OUT';
    Var   A, C : Array[1..maxN, 1..maxN] Of Integer;
          N, M, P, Q, i, j, k, Luu, Min : Integer;
          F : Text;
    
    Procedure Nhap;
    Var x, y, z : Byte;
    Begin
            Assign(F, FI);
            Reset(F);
            Readln(F, N, M):
            FillChar(A, SizeOf(A), 0);
            C := A;
            For i := 1 To M Do
            Begin
                    Readln(F, x, y, z);
                    A[x, y] := z;
                    A[y, x] := z;
            End;
            Readln(F, P, Q);
            Close(F);
    End;
    
    Procedure XuLy;
    Var d : Integer;
    Begin
            Assign(F, FO);
            Rewrite(F);
            For k := 1 To N Do
            For i := 1 To N Do
                    If A[i, k] > 0 Then
                    For j := 1 To N Do
                            If A[j, k] > 0 And i <> j Then
                            If A[i, j] = 0 Or (A[i, j] > A[i, k] + A[k, j]) Then
                            Begin
                                    A[i, j] := A[i, k] + A[k, j];
                                    C[i, j] := k;
                            End;
                            Luu := 0;
                            Min := MaxInt;
            For i := 1 To N Do
            Begin
                    D := 0;
                    For j := 1 To N Do
                    Begin
                            If i <> j Then D := D + A[i, j];
                            If i <> j And A[i, j] = 0 Then
                            Begin
                                    D := MaxInt;
                                    j := N;
                            End;
                    End;
                    If D < Min Then
                    Begin
                            Luu := i;
                            Min := D;
                    End;
            End;
            Writeln(F,'Trung tam dich vu dat tai dia diem ',Luu);
            Write(F,'Tong khoang cach la ',Min);
            Close(F);
    End;
    
    Begin
            Nhap;
            XuLy;
    End.
    Chúc các bạn học tập tốt!
    ...♥.♥.♥..:: Chúc Tất cả các bạn thành công ::..♥.♥.♥...
    ---------o0o---------
    Chúc bạn vui vẻ̉ khi đến với DIENDANTINHOC.VN
    ============>>><<<============

  4. #4
    Người Đóng Góp Hàng Đầu Avatar của HappySoftGroup
    Gia nhập
    May 2008
    Nơi cư ngụ
    Tp. Cam Ranh - Khánh Hòa
    Bài gởi
    2,261

    Mặc định

    Một bài Vét Cạn nhé! Đề bài này chỉ là một trường hợp, các bạn hãy phát triển thành một bài tổng quát nha!

    Lập phương trình tìm tất cả các cách thay thế các dấu chấm hỏi (?) bởi các dấu phép tính +, -, *, / trong biểu thức dưới đây sao cho biểu thức đúng:
    (((((a1 ? a2) ? a3) ? a4) ? a5) ? a6) = a7.
    Trong đó, a1, a2, a3, a4, a5, a6, a7 nhập từ bàn phím.

    Code:
    Uses Crt;
    Const Dau : Array[1..4] Of Char = ('+', '-', '*', '/');
    Var i, j, k, l, m, dem : Integer;
        a : Array[1..7] Of Real;
    
    Procedure Input;
    Var t : Integer;
    Begin
            Writeln('Chuong trinh dien phep toan vao dau "?"');
            Writeln('(((((a1?a2)?a3)?a4)?a5)?a6) = a7');
            For t := 1 To 7 Do
            Begin
                    Write('a',t,'=');
                    Readln(a[t]);
            End;
            Writeln;
    End;
    
    Procedure Print;
    Var t : Integer;
    Begin
            Inc(Dem);
            Write('(((((',a[1]:0:0,dau[i],a[2]:0:0,')');
            Write(Dau[j],a[3]:0:0,')',dau[k],a[4]:0:0,')');
            Write(Dau[l],a[5]:0:0,')',dau[m],a[6]:0:0,')');
            Writeln('=',a[7]:0:0);
    End;
    
    Function F(x, y : Real; d : Integer) : Real;
    Begin
            Case d Of
            1: F := x + y;
            2: F := x - y;
            3: F := x * y;
            4: F := x / y;
            End;
    End;
    
    Procedure Process;
    Var t : Integer;
    Begin
            Writeln('Ket qua: ');
            Dem := 0;
            For i := 1 To 4 Do
                    For j := 1 To 4 Do
                            For k := 1 To 4 Do
                                    For l := 1 To 4 Do
                                            For m := 1 To 4 Do
                                            If F(F(F(F(F(a[1],a[2],i),a[3],j),a[4],k),a[5],l),a[6],m)=a[7] Then Print;
            If Dem = 0 Then Writeln('Vo nghiem')
            Else Writeln('Co tat ca ',dem,' nghiem');
    End;
    
    Begin
            Clrscr;
            Input;
            Process;
            Readln;
    End.


    ...♥.♥.♥..:: Chúc Tất cả các bạn thành công ::..♥.♥.♥...
    ---------o0o---------
    Chúc bạn vui vẻ̉ khi đến với DIENDANTINHOC.VN
    ============>>><<<============

  5. #5
    Thành viên nhiệt tình Avatar của hang_vt
    Gia nhập
    Jun 2008
    Nơi cư ngụ
    Vũng Tàu
    Bài gởi
    373

    Mặc định

    e góp đề cho vui
    Nhập phân số t/m (0<t<m<969696; t,m nguyên ) . Lập trình thực hiên các yêu cầu
    a) Biểu diễn phân số dưới dạng phân số tối giản
    b) Biểu diện phân số này dưới dạng tổng các phân số có tử số = 1 . Tổng càng ít số hạng càng tốt

Thảo luận qua mạng xã hội



Thông tin Chủ đề

Users Browsing this Thread

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

Các đề tài liên quan

  1. Pascal nâng cao!(free pascal)
    Bởi luongtankhang123 trong diễn đàn Pascal/Delphi/Kylix
    Trả lời: 1
    Bài mới gởi: 28/10/2011, 07:54 PM
  2. Phần mềm Pascal (Borland Pascal, Turbo Pascal & Free Pascal Full)
    Bởi HappySoftGroup trong diễn đàn Pascal/Delphi/Kylix
    Trả lời: 33
    Bài mới gởi: 17/09/2011, 07:46 PM
  3. Bài tập pascal
    Bởi lehang_gb1 trong diễn đàn Pascal/Delphi/Kylix
    Trả lời: 1
    Bài mới gởi: 10/10/2010, 09:30 PM
  4. pascal 11
    Bởi i_mr_xanh trong diễn đàn Hỏi-Đáp về Lập trình
    Trả lời: 2
    Bài mới gởi: 06/10/2010, 05:44 PM
  5. Trả lời: 16
    Bài mới gởi: 11/05/2010, 11:03 PM

Bookmarks

Quyền Hạn Của Bạn

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể trả lời
  • Bạn không thể gửi file
  • Bạn không thể sửa bài viết
  •