Trang 1 / 7 12346 ... LastLast
Hiển thị kết quả từ 1 đến 10 / 66
  1. #1
    Tham gia
    11-06-2003
    Location
    Ho Chi Minh
    Bài viết
    70
    Like
    0
    Thanked 0 Times in 0 Posts

    Thông tin Một số bài Pascal hay đây

    1.

    yêu cầu nhập n, sau khi nhập xong, chương trình sắp các chữ A thành hình:
    A
    AA
    AAA
    AAAA
    AAAAA
    ....
    (n lần)

    2.
    Tương tự như vậy, nhưng hình khác:
    ----> vào chính giữa màn hình : A
    ----> thụt vào 1, tăng lên 1 chữ: A A
    ----> thụt vào 2, tăng lên 3 chữa A A A
    (ra hình tam giác cân ngay chính giữa màn hình í mà)
    (n lần)

    Chú ý, để tăng độ khó, các bạn ko được dùng các lệnh insert, gotoxy.

    Ai giải được có thể post bài lên, nếu ko ai hết thì tui tự post vậy
    Được sửa bởi GetXnow lúc 16:52 ngày 27-10-2003
    Quote Quote

  2. #2
    Tham gia
    18-09-2002
    Location
    Ha Noi
    Bài viết
    1,311
    Like
    0
    Thanked 13 Times in 10 Posts
    Trời mấy bài này trong sách của bác Quách Tuấn Ngọc cho đầy ra cả đấy chỉ cần dùng
    for và write là xong thôi chứ có gì đâu
    trước hết với bài số 1.
    uses crt;
    var
    i,j:integer; {với integer đã là quá nhiều rồi}
    begin
    Write('nhap vao n: ');readln(n);
    for i=1 to n do
    begin
    for j:=1 to i do
    write('A');
    end;
    readln
    end;
    bài 2 tương tự nhưng ở đây tui ko có pascal nên không thể kiểm tra xem nó xuất hiện có đúng hay không? nên ko post bài để lần sau vậy. à còn chuyên này nữa là bài này có test thời gian không vậy nếu lấy thời gian thật nhỏ thì mới phải tính thêm chứ thời gian thoải mái thì cứ như vậy là được.

  3. #3
    Tham gia
    11-06-2003
    Location
    Ho Chi Minh
    Bài viết
    70
    Like
    0
    Thanked 0 Times in 0 Posts
    he he, nói vậy chứ bài của bác ở trên có chỗ thiếu đấy. Nếu người ta nhập n=0 thì sao, ở vòng lặp for vẫn còn thiếu

    Bổ sung này:
    sau khi readln(n);
    if n=0 then writeln('ko sap xep duoc') else
    rồi mới for i:=1 to n do
    .....
    ở chỗ vòng lặp thứ 2 (for j:=1 to i do)
    bác viết write('A') thì đúng nhưng nó ko xuống hàng. Do đó cần thêm câu writeln; sau write('A') , OK

  4. #4
    Tham gia
    11-06-2003
    Location
    Ho Chi Minh
    Bài viết
    70
    Like
    0
    Thanked 0 Times in 0 Posts
    À, ko có thời gian gì hết
    còn nữa, bài 2 ko tương tự như vậy đâu bạn à

  5. #5
    Tham gia
    16-02-2003
    Location
    Romania
    Bài viết
    14
    Like
    0
    Thanked 0 Times in 0 Posts
    He he bài này có vẻ thú vị đây.

    Nói như GetXnow thì có lẽ phải thêm cả dòng lệnh
    if n < 0 then write('Cũng sắp xếp được nốt !') else
    if n > 25 then write('N to quá không viết hết được màn hình !') rồi mới đến for i := 1 to n do
    .....
    Tôi nói thế không biết có đúng không ???

  6. #6
    Tham gia
    17-02-2003
    Bài viết
    35
    Like
    0
    Thanked 0 Times in 0 Posts
    câu 2 chẳng qua là thêm lệnh
    write(' ':a) trước khi write('A') là xong thôi
    còn a=? thì các bạn tự tính nhé.

  7. #7
    Tham gia
    25-10-2003
    Bài viết
    17
    Like
    0
    Thanked 0 Times in 0 Posts
    bài của các bạn vẫn còn thiếu, nếu không khai báo n thi làm sao pascal hieu mà chay? ok

  8. #8
    Tham gia
    20-09-2003
    Bài viết
    20
    Like
    0
    Thanked 0 Times in 0 Posts
    còn dãy fibonaci
    các bác chỉ dùng với
    (chỉ thuật toán không càng hay)

  9. #9
    Tham gia
    11-06-2003
    Location
    Ho Chi Minh
    Bài viết
    70
    Like
    0
    Thanked 0 Times in 0 Posts
    bài của msn chưa test nên ko biết đúng ko, còn đây là bài giải :

    program sapxep;
    uses crt;
    var space,solan,x,y,z,n:integer;

    BEGIN
    clrscr;
    write('cho biet n:');
    readln(n);
    if n=0 then writeln('ko xep duoc nghen') else
    if (n>30) then writeln('lon wa vay cha, sao xep') else
    begin
    space:=40;
    solan:=1;
    for x:=1 to n do
    begin
    for y:=1 to space do
    begin
    write('':1);
    end;
    for z:=1 to solan do
    begin
    write('A '); <--- sau A có 1 khỏang trắng
    end;
    space:=space-2;
    solan:=solan+2;
    writeln;
    end;
    readln;
    end.

    Bài này hơi dài hen.
    Khó hơn 1 chút nè, vẫn là hình tam giác ở giữa, nhưng thêm 1 hình nữa đối xứng ở dưới (tức lúc này thành hình thoi rùi đấy), vẫn là các chữ A.
    OK !

  10. #10
    Tham gia
    19-07-2003
    Location
    Biên Hòa
    Bài viết
    499
    Like
    0
    Thanked 1 Time in 1 Post
    Bài giải gì kém quá Nhận xét nè:

    - Khai báo kiểu là byte thay vì integer

    - Cái cụm này thì có thể thay bằng 1 lệnh write('':space) (msn đã nói). Xài lệnh ấy mới gọi là "rành" Pascal Đã vậy begin end mà trong đó chỉ 1 lệnh
    for y:=1 to space do
    begin
    write('':1);
    end;

    - Các lệnh space:=space-2;solan:=solan+2; trong Pascal phải xài là inc, dec mới hay

Trang 1 / 7 12346 ... LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • 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
  •