toilet

giúp bài tập matlab cơ bản

Thảo luận trong 'Matlab'

Đang xem chủ đề này ( Thành viên: 0, Khách: 2)

  1. Đăng 15/12/12 #1

    kakaducsy Kỹ sư

    Số bài viết: 108
    Đã được thích: 44
    Em vừa đc giới thiệu về matlab nên chưa biết gì về cái này.Cô có giao bài tập như sau.Xin đc các anh chị giúp
    1.Viết chương trình kiểm tra xem a,b,c (được nhập từ bàn phím) có là ba cạnh 1 tam giác không.Nếu có xuất ra các góc,diện tích,bán kính đường tròn nội tiếp,ngoại tiếp
    2.cho f(x)=P(x)/Q(x),P(x) là đa thức bậc 2,Q(x) là đa thức bậc 1 nhập từ bàn phím.Viết chương trình tìm cực trị,tiệm cận,vẽ đồ thị với ghi chú đầy đủ điểm cực trịn và các đường tiệm cận
    thanks các anh chị nhiều:)
    Chủ đề cùng chuyên mục
    Chia sẻ Share





    #1
  2. Đăng 16/12/12 #2

    sgesvn Moderator

    Số bài viết: 2,297
    Đã được thích: 2,813
    Giải các bài tập kiểu này bạn nên dùng GUI của MATLAB, giao diện trực quan, tạo thành một phần mềm tính toán chuyên nghiệp.
    1.PNG

    Tài liệu học GUI ở file đính kèm, khá đơn giản.
    Còn dưới đây là một số bài tập mẫu bạn có thể tham khảo: (Giải phương trình bậc 2 và sử dụng pop_up) mình không cài matlab nên không demo tương tự cho bạn được, tuy nhiên bài giải phương trình bậc 2 cũng là dạng bài tập bạn đang làm.
    comet.rar
    ptb2.rar

    Các file đính kèm:

    vienngyn, Nam_bkhnkakaducsy thích bài này.
    #2
  3. Đăng 16/12/12 #3

    sgesvn Moderator

    Số bài viết: 2,297
    Đã được thích: 2,813
    Nếu chỉ đơn giản viết bằng m_file thì dưới đây là các bài mẫu cho bạn:
    Bai tap 1: Nhap vao 3 so? kiem tra xem co tao thanh tam giac hay khong . neu co tinh dien tich va chu vi tam giac vào file>>new>>mfile
    Mã:
    a=input ('nhap vao do dai canh a : ');
    b=input ('nhap vao do dai canh b : ');
    c=input ('nhap vao do dai canh c : ');
    if (a>0)&(b>0)&(c>0)&(a+b>c)&(c+b>c)&(a+c>b)
    cv=a+b+c;
    disp ('chu vi tam giac la : ');
    cv
     
    p=cv/2;
    disp ('dien tich tam giac la : ');
    s=sqrt(p*(p-a)*(p-b)*(p-c))
    else
    disp ('3 so khong tao thanh tam giac ');
    end; 
    Bài tập 2 : Dùng hàm m-file để tính tổng bình phương của 2 số (x^2+^2)
    bước 1 : vào file>>new>>mfile
    Mã:
    function z=tbp(x,y)
    z=x*x+y*y;
    bước 2: vào file chọn save(lưu với tên là tbp)
    bước 3:vào file>>new>>mfile
    t1=input ('nhap vao gia tri t1 : ');
    t2=input ('nhap vao gia tri t2 : ');
    kq= tbp(t1,t2);
    disp ('tong binh phuong cua 2 so la ');
    kq
    bước 4:vào file chọn save(lưu với tên là bt1)
    bước 5:ra cưa sổ chính command window gõ bt1>>enter.
    
    Bài tập 3 :viết bằng hàm m-file :tính tổng , hiệu và tích của 2 số nhập vào từ bàn phím
    • tính tổng:
    bước 1 : vào file>>new>>mfile
    Mã:
    function f=tong(x,y);
    f=x+y;
    bước 2: vào file chọn save(lưu với tên là tong)
    bước 3:vào file>>new>>mfile
    a= input ('nhap vao so a : ');
    b= input ('nhap vao so b : ');
    disp ('tong cua 2 so la ');
    kq= tong(a,b)
    bước 4:vào file chọn save(lưu với tên là bt2)
    bước 5:ra cưa sổ chính command window gõ bt2>>enter.
    • tính hiệu và tích tương tự.
    bài tập 4: viet chuong trinh nhap vao2 so a,b. tim gia tri lon nhat
    bước 1 : vào file>>new>>mfile
    Mã:
    a=input ('nhap vao gia tri a : ');
    b=input ('nhap vao gia tri b : ');
    max=a;
    if max<b
    max=b;
    end;
    disp ('gia tri lon nhat la : ');
    max
    bước 2: vào file chọn save(lưu với tên là bt4)
    bước 3:ra cưa sổ chính command window gõ bt4>>enter.
    bài tập 5: giai phuong trinh bac 2 bang scrip file
    bước 1 : vào file>>new>>mfile
    %giai phuong trinh bac 2 bang scrip file
    Mã:
    a=input ('nhap vao gia tri a: ');
    b=input ('nhap vao gia tri b: ');
    c=input ('nhap vao gia tri c: ');
    delta=b*b-(4*a*c);
    if delta<0
    disp ('phuong trinh vo nghiem ');
    elseif delta==0
    disp ('phuong trinh co nghiem kep');
    x=-b/(2*a)
    else
    disp ('phuong trinh co 2 nghiem phan biet ');
    x1=(-b+sqrt(delta))/(2*a)
    x2=(-b-sqrt(delta))/(2*a)
    end; 
    bước 2: vào file chọn save(lưu với tên là bt5)
    bước 3:ra cưa sổ chính command window gõ bt5>>enter.
    bài tập 6: nhap vao 2 so. tim UCLN,BCNN
    vào file>>new>>mfile
    Mã:
    a=input ('nhap vao so a : ');
    b=input ('nhap vao so b : ');
    m=a*b;
    while a~=b
    if a>b
    a=a-b;
    else
    b=b-a;
    end;
    end;
    disp ('uoc chung lon nhat la : ');
    a
    disp ('boi chung nho nhat la: ');
    bcnn=m/a
     
    
    bài tập 7:nhap vao gia tri n, kiem tra xem co phai so nguyen to hay khong
    vào file>>new>>mfile
    Mã:
    n=input('nhap vao gia tri n : ');
    dem=0;
    for i=1:n
    if rem (n,i)==0
    dem=dem+1;
    end;
    end;
    if dem==2
    disp ('so vua nhap la so nguyen to')
    else
    disp ('so vua nhap khong phai so nguyen to')
    end; 
    bài tập 8 :nhap vao 1 gia tri n, kiem tra xem gia tri do phai so hoan hao hay khong
    vào file>>new>>mfile
    Mã:
    n=input ('nhap vao gia tri n ');
    tonguoc=0;
    for i=1:n-1
    if rem(n,i)==0
    tonguoc=tonguoc+i;
    end;
    end;
    if tonguoc==n
    disp ('so vua nhap la so hoan hao');
    else
    disp ('so vua nhap khong phai so hoan hao')
    end;
    bài tập 9: tinh tong s=1+(1/2) + 1/3 +...+1/n
    vào file>>new>>mfile
    Mã:
    n=input ('nhap vao gia tri n ');
    s=0; i=1;
    while i<=n
    s=s+(1/i);
    i=i+1;
    end;
    disp ('tong cua day la ');
    s
    bài tập 10:tinh tong cac so chan va chia het cho 5 tu 1 den n
    vào file>>new>>mfile
    Mã:
    n=input ('nhap vao gia tri n: ');
    s=0;
    for i=1:n
    if rem (i,10)==0
    s=s+i;
    end;
    end;
    disp (' tong cac so chan va chia het cho 5 la :')
    s
    bài tập 11:tinh tong cua 2 phan so a/b+c/d
    vào file>>new>>mfile
    Mã:
    a=input ('nhap vao so a : ');
    b=input ('nhap vao so b : ');
    c=input ('nhap vao so c : ');
    d=input ('nhap vao so d : ');
    disp ('tong cua 2 phan so a/b+c/d la : ');
    tong=(a*d+b*c)/(b*d)
    bài tập 12: nhap vao 1 so n .voi dieu kien n<50
    Mã:
    n=input('nhap vao so n : ');
    while (n<0)|(n>50)
    disp ('n phai >0 va n<50 hay nhap lai gia tri n ');
    n=input('');
    end;

    Các file đính kèm:

    vienngyn, BuiBachTuanAnh(deleted member) thích bài này.
    #3
  4. Đăng 16/12/12 #4

    sgesvn Moderator

    Số bài viết: 2,297
    Đã được thích: 2,813
    Thêm vài bài nữa đây: Về mảng 1 chiều
    • Nhap vao 1 day gom n phan tu
    Mã:
    n=input('nhap vao so phan tu cua day : ');
    for i=1:n
    a(i)=input ('a(i) ');
    end;
    disp ('day vua nhap la : ');
    a
    • In ra man hinh gia tri lon nhat cua day so
    Mã:
    max=a(1);
    for i=1:n
    if max<a(i)
    max=a(i);
    end;
    end;
    disp ('gia tri lon nhat cua day la')
    max
    • In ra man hinh gia tri nho nhat cua day so
    Mã:
    min=a(1);
    for i=1:n
    if min>a(i)
    min=a(i);
    end;
    end;
    disp ('gia tri nho nhat cua day la')
    min 
    • Tinh trung binh cong ca so duong trong day
    Mã:
    s=0;dem=0;
    for i=1:n
    if a(i)>0
    s=s+a(i);
    dem=dem+1;
    end;
    end;
    disp ('trung binh cong so duong trong day la : ')
    tbc=s/dem
    
    • Nhap vao 1 so x bat ky , kiem tra xem x co xuat hien trong day hay khong
    Mã:
    x=input ('nhap vao so x: ');
    d=0;
    for i=1:n
    if x==a(i)
    d=d+1;
    end;
    end;
    if d==0
    disp ('so vua nhap khong xuat hien trong day');
    else
    disp ('so vua nhap co trong day');
    end;
    
    • In ra man hinh tat cac cac so nguyen to trong day
    Mã:
    disp ('so nguyen to trong day: ')
    d1=0;
    for i=1:n
    d=0;
    for j=1:a(i)
    if rem(a(i),j)==0
    d=d+1;
    end;
    end;
    if d==2
    d1=d1+1;
    a(i)
    end;
    end;
    if d1==0
    disp ('trong day khong co so nguyen to')
    end;
     
    
    • Sap xep day theo chieu tang dan
    Mã:
    for i=1:n-1
    for j=i+1:n
    if a(i)>a(j)
    tg=a(i);
    a(i)=a(j);
    a(j)=tg;
    end;
    end;
    end;
    disp ('day sau sap xep tang la : ' )
    a
     
    
    • Sap xep day theo chieu giam dan

    Mã:
    for i=1:n-1
     
    for j=i+1:n
     
    if a(i)<a(j)
     
    tg=a(i);
     
    a(i)=a(j);
     
    a(j)=tg;
     
    end;
     
    end;
     
    end;
     
    disp ('day sau sap xep giam la : ' )
     
    a 
    vienngynquanghuy91tn thích bài này.
    #4
  5. Đăng 16/12/12 #5

    sgesvn Moderator

    Số bài viết: 2,297
    Đã được thích: 2,813
    MẢNG 2 CHIỀU
    • Nhap vao 1 ma tran co n x m
    Mã:
    clear all
    n=input('nhap vao so dong cho ma tran : ');
    m=input('nhap vao so cot cho ma tran : ');
    for i=1:n
    for j=1:m
    a(i,j)=input ('nhap vao phan tu cho ma tran: ');
    end;
    end;
    disp ('mang vua nhap la : ');
    a
    • In ra man hinh gia tri nho nhat trong ma tran
    Mã:
    min=a(1,1);
    for i=1:n
    for j=1:m
    if min>a(i,j)
    min=a(i,j);
    end;
    end;
    end;
    disp ('gia tri nho nhat trong ma tran la : ');
    min
    
    • In ra man hinh gia tri lon nhat trong ma tran
    Mã:
    max=a(1,1);
    for i=1:n
    for j=1:m
    if max<a(i,j)
    max=a(i,j);
    end;
    end;
    end;
    disp ('gia tri lon nhat trong ma tran la : ');
    max
    
    • Tinh trung binh cong cac so chan va chia het cho 3 (tuc la tinh trung binh cong cua cac so chia het cho 6)
    Mã:
    s=0;d=0;
    for i=1:n
    for j=1:m
    if rem(a(i,j),6)==0;
    s=s+a(i,j);
    d=d+1;
    end;
    end;
    end;
    if d==0
    disp ('trong ma tran khong co so chan va chia het cho 3 ');
    else
    disp ('trung binh cong cac so chan va chia het cho 3 la : ');
    tbc=s/d
    end;
    
    • Tinh tong cac so nguyen to trong ma tran
    Mã:
    s=0;
    for i=1:n
    for j=1:m
    d=0;
    for k=1:a(i,j)
    if rem (a(i,j),k)==0
    d=d+1;
    end;
    end;
    if d==2
    s=s+a(i,j);
    end;
    end;
    end;
    disp ('tong cac so nguyen to trong ma tran la: ');
    s
     
    
    • In ra man hinh cac so hoan hao trong ma tran
    Mã:
    disp ('so hoan hao trong ma tran : ')
    d1=0;for i=1:n
    for j=1:m
    s=0;
    for k=1:a(i,j)-1
    if rem(a(i,j),k)==0
    s=s+k;
    end;
    end;
    if a(i,j)==s
    d1=d1+1;
    a(i,j)
    end;
    end;
    end;
    if d1==0
    disp ('trong ma tran khong co so hoan hao')
    end;
    
    • Tinh tong cac so hoan hao trong ma tran
    Mã:
    d=0;
    for i=1:n
    for j=1:m
    s=0;
    for k=1:a(i,j)-1
    if rem(a(i,j),k)==0;
    s=s+k;
    end;
    end;
    if s==a(i,j)
    d=d+a(i,j);
    end;
    end;
    end;
    disp ('tong ca so hoan hao trong ma tran la : ')
    d
    • Nhap vao vec to he so cua dathuc va 1 gia tri x bat ky,tinh gia tri cua da
    thuc do tai x
    Mã:
    clear all
    n=input('nhap vao so gia tri cua vec to: ');
    for i=1:n
    a(i)=input ('nhap vao phan tu vec to: ');
    end;
    disp ('vec to vua nhap la: ')
    a
     
    x=input('nhap vao gia tri x bat ky : ');
    disp ('gia tri cua da thuc tai x la : ');
    polyval (a,x)
    kakaducsy thích bài này.
    #5
  6. Đăng 16/12/12 #6

    kakaducsy Kỹ sư

    Số bài viết: 108
    Đã được thích: 44
    cho em hỏi để nhập từ bàn phím ta làm thế nào.Vì em chỉ biết nhập luôn giá trị ngay trong luc viết chứ chưa biết cách nhập nhiều lần giống pascal đc
    #6
  7. Đăng 16/12/12 #7

    sgesvn Moderator

    Số bài viết: 2,297
    Đã được thích: 2,813
    Bạn đọc kỹ tất cả các ví dụ đi, có hết rồi đấy. Mà xem file đính kèm là các bài tập đã làm, code mình đưa lên để dễ xem hơn thôi
    #7
  8. Đăng 18/1/13 #8

    DT2K50 Học sinh phổ thông

    Số bài viết: 12
    Đã được thích: 12
    BẠN DÙNG LÊNH fprintf NHÉ:
    VD: NHẬP DÃY SỐ CÓ N PHẦN TỬ CÓ THỂ LÀM NHƯ SAU, SẼ NHƯ BẠN MONG MUỐN
    Mã:
    n=input('NHAP SO PHAN TU CUA DAY n = ');
    if n<=0
        disp('BẠN NHẬP SAI RỒI !!!');
    end
    if n>0
        for i=1:n
            fprinntf('a[%d] = ',i) ;
            a[i]=input('  ');
        end % end for
    end % end if
    HY VỌNG CÓ THỂ GIÚP ÍCH CHO BẠN LÀM CÁC BÀI TOÁN PHỨC TẠP HƠN, CS GÌ THẮC MẮC, CỨ COMMNET MỌI NGƯỜI SẼ GIÚP. THẾ NHÉ
    sgesvn thích bài này.
    #8
  9. Đăng 19/1/13 #9

    kakaducsy Kỹ sư

    Số bài viết: 108
    Đã được thích: 44
    ya em là giống pascal vậy anh.sau khi nhập và chạy chương trình thì nó tiếp tục bảo nhập như lần thứ nhất để chạy ví dụ 2 ấy
    #9
  10. Đăng 19/1/13 #10

    DT2K50 Học sinh phổ thông

    Số bài viết: 12
    Đã được thích: 12
    MÌNH CHƯA HIỂU LẮM, NẾU NHẬP NHƯ PASCAL THÌ CODE SAU ĐÂY LÀ GẦN NHƯ VẬY ( CODE TRÊN BỊ SAI 1 CHỖ, MÌNH CHƯA KIỂM TRA LẠI), NẾU CÓ GÌ BẠN CÓ THỂ MÔ TẢ RÕ HƠN KO.
    ĐÂY LÀ CODE ĐỂ XUẤT
    Mã:
    clear all;
    n=input('NHAP SO PHAN TU CUA DAY n = ');
    if n<=0
        disp('BẠN NHẬP SAI RỒI !!!');
    end
    if n>0
        for i=1:n
            fprintf ('a(%d) = ',i) ;
            a(i)=input(' ');
        end
    end
     
    
    #10

Chia sẻ trang này