Kết quả 1 đến 10 của 10

Chủ đề: Bài tập Pascal!

  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    2

    Bài tập Pascal!

    1. Viết chương trình nhập vào mẫu thống kê kích thước n: x1, x2, x3, ..., xn và tính hạng cho các phần tử của mẫu theo quy tắc thống kê : giả sử dãy x1, x2, ... , xn đã sắp xếp tăng dần thì hạng của các phần tử bằng nhau được tính là trung bình cộng các chỉ số của các phần tử bằng nhau đó (nếu không có phần tử nào bằng với phần tử xk thì hạng của xk = k).

    2. Lập chương trình nhập vào mẫu ngẫu nhiên của đại lượng ngẫu nhiên X có kích thước mẫu n. tìm kì vọng và phương sai mẫu.

    :book:

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    95
    Bài 1 thì tớ làm được rồi. còn bài 2 không biết công thức tính kì vọng và phương sai mẫu

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    2
    Đây là chương trình bài 1 mình đã viết và chạy đúng rồi. Nhưng cách viết hơi khó theo dõi mong bạn đọc và hiểu!
    Ý tưởng là như thế này: Ban đầu sắp xếp dãy tăng dần, sau đó đếm số lượng phần tử giống nhau và tìm trung bình các chỉ số đó(bằng cách tìm vị trí bắt đầu và kết thúc của các phần tử giống nhau) để tìm hạng của các phần tử
    Mã:
    Var A:array[1..100] of integer;
     
    i,k,N,j,tg,d,bd,kt,S:integer;
    h:real;
    Begin
    write('Nhap vao so phan tu:'); Readln(N);
    For i:=1 to N do
    Begin
     write('Phan tu thu:',i,':');
     Readln(A[i]);
    End;
    For i:=1 to N-1 do
    For j:=i+1 to N do
    if A[i]>A[j] then
    Begin
    tg:=A[i];
    A[i]:=A[j];
    A[j]:=tg;
    End;
     
    {Day sau khi sap xep la}
    write('Day sau khi sap xep la:');
    For i:=1 to N do write(A[i]:3);writeln;
     
    i:=1;
    While i<=N do
    Begin
    bd:=i;d:=0;
    while A[i]=A[bd] do
     Begin
         inc(d);
         inc(i);
      End;
    kt:=i-1; if d>1 then
    Begin
       For k:=bd to kt do S:=S+k;
        h:=S/d
    End
    else cs:=kt;
    writeln('phan tu ', A[i-1],'chi so tu', bd, ' den ',kt);
    writeln('phan tu ', A[i-1], 'co hang la', h:3:2);
    End;
    Readln
    End.

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    11
    Cảm ơn bạn Hằng![IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
    Giúp mình bài này nha:
    Lập chương trình tính tiền điện khi biết số Kw tiêu thụ. Biết rằng 100 số đầu giá 500, 50 số tiếp theo giá 650 và các số trên 150 giá 1200 đồng.
    Mình dùng câu lệnh if ... then ... else mà không hiểu sao lại không chạy đúng.

  5. #5
    Ngày tham gia
    Nov 2015
    Bài viết
    3
    Cảm ơn bạn nhiều nhiều nha. Hihi!

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    2
    Mã:
    uses    crt;
    var     tiendien,sodien,d:longint;
    begin
            clrscr;
            readln(sodien);
            d:=0;
            if d=0 then
            begin
                    if sodien <=100 then tiendien:=sodien*500
                    else
                    begin
                            sodien:=sodien-100;
                            tiendien:=100*500;
                            inc(d);
                    end;
            end;
            if d=1 then
            begin
                    if sodien <=50 then tiendien:=tiendien+sodien*650
                    else
                    begin
                            sodien:=sodien-50;
                            tiendien:=tiendien+50*650;
                            inc(d);
                    end;
            end;
            if d=2 then tiendien:=tiendien+sodien*1200;
            write(tiendien);
            readln;
    end.
    Bạn thử coi nhé! [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    4
    Lời giải rất đơn giản như sau bạn ah!, sao sacklove viết phức tạp thế nhỉ lại còn dùng thêm biến d làm gì!
    Mã:
    Var i,sd:integer; T:longint;
    Begin
    write('Nhap vao so dien tieu thu:');
    Readln(sd);
    if sd>150 then T:=100*500+50*650+(sd-150)*1200
    else
      if sd>=100 then T:=100*500+(sd-100)*650
        else T:=sd*500;
    write('Vay so tien la:',T);
    Readln
    End.

  8. #8
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Về cơ bản thì đâu có khác nhau. Chỉ là trình bày ra thì khác thôi.
    Biến d của mình dùng để kiểm soát 3 trường hợp xảy ra.

  9. #9
    Ngày tham gia
    Mar 2016
    Bài viết
    5
    cảm ơn bạn

    nhờ bài của bạn mình biết cái sai trong bài của mình rồi, phải chọn kiểu longint cho sodien và tiendien mới được.
    các bạn có thể xem cách làm của mình, mình thấy ngắn gọn hơn:

    var n, T: longint;
    begin
    write(' nhap so dien n =');readln(n);
    if n<=100 then T:=n*500
    else if n<=150 then T:=100*500+(n-100)*650
    else T:=100*500+50*650+(n-150)*1200;
    write(T);
    readln;
    end.

  10. #10
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    cảm ơn bạn Lehang nữa nha. (bây giờ mới thấy bài của bạn).

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
  •