kết quả từ 1 tới 9 trên 9

Ðề tài: Một số bài tập hay về vòng lặp và mảng 1 chiều

  1. #1
    Join Date
    Apr 2009
    Đến từ
    C:\WINDOWS\system32
    Bài gởi
    651
    Thanks
    88
    Thanked 330 Times in 177 Posts

    Cool Một số bài tập hay về vòng lặp và mảng 1 chiều

    Một số bài tập mà mình sưu tầm được. Mọi người cùng vào thảo luận thuật toán, ai code rồi thì up lên cho mọi người cùng tham khảo nha :D
    1. Tìm số lớn thứ 2 xuất hiện trong mảng.
    2. Tìm số lớn nhất và nhỏ nhất thuộc đoạn [x;y] và thuộc mảng a. (x và y là và mảng a thuộc kiểu số nguyên)
    3. Tìm số dương nhỏ nhất và số âm lớn nhất trong mảng
    4. In ra tổng lớn nhất của k phần tử liên tiếp xuất hiện trong mảng
    5. In ra màn hình phần tử xuất hiện nhiều lần nhất trong mảng
    6. Đếm số lượng các phần tử khác nhau trong mảng
    7. Cho mảng a theo thứ tự sau: a[1] -> a[m-1] -> a[m] -> a[n]
    Viết chương trình đảo vị trí các phần tử trong mảng thành: a[m] -> a[n] -> a[1] -> a[m-1]
    Yêu cầu: Không sử dụng thêm mảng phụ
    8. Sắp xếp lại mảng sao cho các số chẵn tăng dần ở đầu mảng, các số lẻ giảm dần ở cuối mảng.
    9. Cho 2 mảng 1 chiều đã xắp xếp tăng dần,
    Viết chương trình nhập 2 mảng thành 1 mảng tăng dần
    10. Cho 2 mảng 1 chiều.
    Viết chương trình in ra màn hình tất cả các số cùng xuất hiện trên cả 2 mảng (trong mỗi mảng vẫn có thể có những phần tử có giá trị trùng nhau)
    11. Viết chương trình tính tổng a + b (Với a và b là những số vô cùng lớn, không thể lưu vào các kiểu dữ liệu thông thường) Nguồn: http://diendankienthuc.net.
    Tôi không thất bại, vì tôi biết hơn 1200 chất liệu không thể phát sáng được.
    THOSMAS ALVA EDISON

  2. #2
    Join Date
    Nov 2009
    Bài gởi
    25
    Thanks
    12
    Thanked 1 Time in 1 Post

    Học tập suôt đời!

    mấy pài này được đó, để mấy hôm nữa mình úp lên cho, (sắp thi rồi). mấy pài này chưa đủ sức hạ nổi mình đâu, còn pài nào nữa thì up lên heng pạn, minh thích môn này lắm. Nguồn: http://diendankienthuc.net.

  3. #3
    Join Date
    Nov 2009
    Bài gởi
    25
    Thanks
    12
    Thanked 1 Time in 1 Post

    Học tập suôt đời!

    trước tiên mình xin giải bài 10 heng(bài dễ nhất), không sử dụng chương trình con:

    uses crt;
    const max=100;
    var a:array[1..max] of integer;
    b:array[1..max] of integer;
    i,j,n,m:integer;
    begin
    clrscr;
    writeln;
    repeat;
    write('nhap so phan tu mang n,m= ');
    readln(n,m);
    until n<m;
    for i:=1 to n do
    begin
    write('nhap a[',i,']= ');
    readln(a[i]);
    end;
    for i:=1 to m do
    begin
    write('nhap b[',i,']= ');
    readln(b[i]);
    end;
    for i:=1 to n do
    for j:=1 to m do
    begin
    if a[i]=b[j] then write(a[i]:2);
    end;
    readln;
    end. Nguồn: http://diendankienthuc.net.

  4. #4
    Join Date
    Apr 2009
    Đến từ
    C:\WINDOWS\system32
    Bài gởi
    651
    Thanks
    88
    Thanked 330 Times in 177 Posts

    Học tập suôt đời!

    Bài này bạn phải ép số phần tử của mảng a nhiều hơn mảng b nhưng nếu trong trường hợp dữ liệu cho ở kiểu file thì mình khó có thể sử dụng được kiểu này.
    Bài này mình để xuất 2 thuật toán (mình cũng chưa thoả mản với 2 thuật toán này vì nó tốn nhiều thời gian và độ phức tạp cao)
    Thuật toán 1: Mình sẽ sắp xếp 2 mảng rồi duyệt tuần tự song song cả 2 mảng để tìm những phần tử giống nhau
    Thuật toán 2: Dùng thuật toán đánh dấu.
    Mình sẽ tạo ra 2 mảng phụ a1 va b1có kiểu boolean. Mảng 1 đánh dấu các phần tử của a1[a[i]]=1; b1[b[i]]=1.
    Duyệt a,b để tìm ra phần tử chung (a[i]=b[i]=1)
    Phép duyệt mảng bool sẽ nhanh hơn và chiếm ít bộ nhớ hơn.
    Mọi người cùng thảo luận để tìm ra thuật toán hay hơn nha Nguồn: http://diendankienthuc.net.
    Tôi không thất bại, vì tôi biết hơn 1200 chất liệu không thể phát sáng được.
    THOSMAS ALVA EDISON

  5. #5
    Join Date
    Nov 2009
    Bài gởi
    25
    Thanks
    12
    Thanked 1 Time in 1 Post

    Học tập suôt đời!

    mình xin giải bài 3:
    uses crt;
    const max=100;
    var a,b,c:aray[1..max] of integer;
    i,j,n:integer;
    begin
    clrscr;
    write('nhap so phan tu mang n= ');
    readln(n);
    for i:=1 to n do
    begin
    write('a[',i,']= ');
    readln(a[i]);
    end;
    for i:=1 to n do
    if a[i]<0 then b[i]:=a[i] else c[i]:=a[i];
    {tới đây thì bạn so sánh là xong};
    readln;
    end.
    nếu bạn nào có thuật toán toán hay hơn, xin post lên cho mình học hỏi Nguồn: http://diendankienthuc.net.
    TÔI KHÔNG THẤT BẠI VÌ TÔI BIẾT HƠN 1000 CHẤT LIỆU KHÔNG PHÁT SÁNG!

  6. #6
    Join Date
    Apr 2009
    Đến từ
    C:\WINDOWS\system32
    Bài gởi
    651
    Thanks
    88
    Thanked 330 Times in 177 Posts

    Học tập suôt đời!

    Cách giải của mình nè (mình không dùng mảng phụ)
    uses crt;
    const max=100;
    var a,b,c:aray[1..max] of integer;
    i,j,n,m1,m2:integer;
    begin
    clrscr;
    write('nhap so phan tu mang n= ');
    readln(n);
    for i:=1 to n do
    begin
    write('a[',i,']= ');
    readln(a[i]);
    end;
    m1:=0; //max so am
    m2:=0; //min so duong
    for i=1 to n do
    begin
    if (a[i]<0 & (a[i]>m1 hoac m1=0)) then m1:=a[i];
    if (a[i]>0 & (a[i]<m2 hoac m2=0)) then m2:=a[i];
    end;
    readln;
    end.

    Nhờ mấy mod sửa lại lỗi cú pháp hộ em nha. Lâu rồi không học pas nên quên hết cú pháp rồi :) Nguồn: http://diendankienthuc.net.
    Tôi không thất bại, vì tôi biết hơn 1200 chất liệu không thể phát sáng được.
    THOSMAS ALVA EDISON

  7. #7
    Join Date
    Nov 2009
    Bài gởi
    25
    Thanks
    12
    Thanked 1 Time in 1 Post

    Học tập suôt đời!

    cách của mình chưa chạy thử không biết có chạy được không!! nhưng mình thấy cách của bạn hay đó!!thanks Nguồn: http://diendankienthuc.net.
    TÔI KHÔNG THẤT BẠI VÌ TÔI BIẾT HƠN 1000 CHẤT LIỆU KHÔNG PHÁT SÁNG!

  8. #8
    Join Date
    Nov 2009
    Bài gởi
    25
    Thanks
    12
    Thanked 1 Time in 1 Post

    Học tập suôt đời!

    cho mình hỏi về bài 4: số k nhập từ bàn phím hay bất kì? Nguồn: http://diendankienthuc.net.
    TÔI KHÔNG THẤT BẠI VÌ TÔI BIẾT HƠN 1000 CHẤT LIỆU KHÔNG PHÁT SÁNG!

  9. #9
    Join Date
    Apr 2009
    Đến từ
    C:\WINDOWS\system32
    Bài gởi
    651
    Thanks
    88
    Thanked 330 Times in 177 Posts

    Học tập suôt đời!

    Nhập từ bàn phím hoặc lấy từ file đều được. Nguồn: http://diendankienthuc.net.
    Tôi không thất bại, vì tôi biết hơn 1200 chất liệu không thể phát sáng được.
    THOSMAS ALVA EDISON

Chủ đề giống nhau

  1. Trả lời: 0
    Bài mới gởi: 12-17-2010, 08:12 PM
  2. Trả lời: 0
    Bài mới gởi: 12-16-2010, 09:40 PM
  3. Thanh lý gấp bút trình chiếu VP100 giá 200k/Chiếc
    By HiepBTY in forum Sản phẩm - Dịch vụ Giáo dục
    Trả lời: 2
    Bài mới gởi: 10-29-2010, 09:38 PM
  4. Trả lời: 2
    Bài mới gởi: 12-20-2009, 08:10 PM
  5. Trả lời: 0
    Bài mới gởi: 12-01-2009, 08:15 AM

Bookmarks

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

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •