مبانی کامپیوتر- جلسه چهاردهم (مثال حل شده)
- admin
- مبانی کامپیوتر
مثال های حل شده برنامه نویسی مقدماتی به زبان متلب
در این قسمت تعداد دوازده مثال بسیار ساده جهت یادگیری هرچه بهتر برنامه نویسی در متلب آورده شده است. بلافاصله بعد از ذکر مثال، راه حل آن نیز در قالب یک نمونه کد متلب ارائه شده است. قابل ذکر است، حل این قبیل مسائل منحصر به یک راه حل نبوده و هریک از شما عزیزان می توانید الگوریم حل مسئله به روش خودتان را توسعه دهید. توصیه می شود قبل از اینکه در متلب شروع به کد نویسی کنید ابتدا الگوریتم حل مسئله را روز کاغذ پیاده نموده، پس از بهینه نمودن راه حل، فلوچارت آن را رسم نموده و در ادامه شروع به اجرای آن به زبان کد متلب در این نرمافزار نمایید.
توصیه:
اگر میخواهید برنامه نویسی یاد بگیرید از کپی و پیست کردن کدها خودداری کنید. توجه داشته باشید، برنامه نویس کسی است که برنامه می نویسد! پس تا با دستان خود کد نزنید، کد نویسی یاد نگرفته و برنامه نویس نخواهید شد.
سوال 1
برنامه ای بنویسید که ضرایب سه معادله سه مجهولی را گرفته و جواب معادله را چاپ نماید.
clc clear all zar=input('matrise zarayebe 3 moadele 3 majhool(3*3): '); mag=input('matrise maghadir(3*1):'); javab=inv(zar)*mag; disp(javab)
سوال 2
برنامه ای بنویسید که یک عدد را گرفته و به عوامل یا مضرب های اولش تجزیه کرده و نمایش دهد.
clc clear all n=input('enter a number:'); b=[num2str(n) '=']; a=['']; for i=1:n if isprime(i)==1 while rem(n,i)==0 a=[a num2str(i) 'x']; n=n/i; end elseif n==1 break end end a(end)=''; disp([b a])
سوال 3
برنامه ای بنویسید که که عددی را در مبنای 2 به صورت یک ماتریس سطری گرفته و به مبنای 10 تبدیل کند.
clc clear all adad=input('adad dar mabnaye 2:'); p=0; b=0; while(10^p)<=adad p=p+1; end for i=1:p a=floor(adad/(10^(p-i))); if a>=2 error('adad dar mabnaye 2 nist') end adad=adad-(a*(10^(p-i))); b=b+(a*(2^(p-i))); end disp (b)
سوال 4
برنامه ای بنویسید که زاویه ای را به صورت دقیقه، درجه، ثانیه گرفته و به زاویه با دقت اعشاری و برحسب درجه تبدیل کند.
clc clear all dar=input('daraje:'); min=input('daghighe:'); sec=input('saniye:'); javab=dar+(min/60)+(sec/3600); disp(javab)
سوال 5
تابعی بنویسید که از کاربر یک عدد چند رقمی بگیرد و حاصلجمع ارقام آن را محاسبه نماید و با پیغام مناسب نمایش دهد.
function [s] = jamargham(adad) s=0; p=0; while (10^p)<=adad p=p+1; end for i=1:p a=floor(adad/(10^(p-i))); s=s+a; adad=adad-(a*(10^(p-i))); end disp(['jame argham:' num2str(s)]) end
سوال 6
تابعی بنویسید که از کاربر یک عدد چند رقمی بگیرد و حاصلضرب ارقام آن را محاسبه نماید و با پیغام مناسب نمایش دهد.
function [ss] = zarbargham(adad) ss=1; p=0; while (10^p)<=adad p=p+1; end for i=1:p a=floor(adad/(10^(p-i))); ss=ss*a; adad=adad-(a*(10^(p-i))); end disp(['jame argham:' num2str(ss)]) end
سوال 7
برنامه ای بنویسید دو عدد به عنوان ورودی دریافت کند و اعداد فرد مابین آنها را در خروجی نمایش دهد. (برای اعداد متوالی هشدار دهد)
clc clear all a1=input('enter a number:'); a2=input('enter another number:'); if abs(a1-a2)==1 error('hoshdar!!!adade varede motavali hastand!!!') end p=min(a1,a2); q=max(a1,a2); c=[]; for i=(p+1):(q-1) if rem(i,2)==1 c=[c i]; end end disp(c)
سوال 8
برنامه ای بنویسید دو عدد به عنوان ورودی دریافت کند و اعداد زوج مابین آنها را در خروجی نمایش دهد. (برای اعداد متوالی هشدار دهد)
clc clear all a1=input('enter a number:'); a2=input('enter another number:'); if abs(a1-a2)==1 error('hoshdar!!!adade varede motavali hastand!!!') end p=min(a1,a2); q=max(a1,a2); c=[]; for i=(p+1):(q-1) if rem(i,2)==0 c=[c i]; end end disp(c)
سوال 9
برنامه ای بنویسید که سه عدد از کاربر دریافت نموده و مشخص کند که این سه عدد تشکیل یک مثلث می دهند یا خیر؟
clc clear all a=input('brdare adade baraye baresi ijade mosalas(1*3):'); a=[a a(1) a(2)]; j=0; for i=1:3 if a(i)+a(i+1)<=a(i+2) j=j+1; disp('tashkil mosalas nemidahand!!!') end end if j==0 disp('tashkil mosalas midahand') end
سوال 10
برنامه ای بنویسید كه عدد A را از کاربر دریافت نماید، سپس مجموع اعداد طبيعي مضرب 7 و كوچكتراز A را حساب كند.
clc clear all a=input('enter a number:'); if a<7 disp(['0']) else b=a-rem(a,7); c=[7:7:b]; s=sum(c); disp(s) end
سوال 11
برنامه ای بنویسید که رسم هندسی زیر را ترسیم کند.
clc clear all close all for i=1:21 plot([i-1,20],[20,21-i]) hold on end
سوال 12
برنامه ای بنویسید که شکل زیر را رسم کند.
clc clear all close all teta=0:0.01:pi; for i=1:20 x=-i*cos(teta); y=-i*sin(teta); plot(x,y,'color',[10*i/255,0,0]) axis equal hold on end
سوال 13
برنامه ای بنویسید که شکل زیر را رسم کند.
clear close all clc for i=1:21 plot([i-1,20],[20,21-i],'color',[i/21 i/30 i/50]) hold on end n=20; for j=0:n x=[0,j]; y=[n-j,0]; plot(x,y,'color',[j/20 j/30 j/50]) hold on end X=1:0.01:10; x_1=cos(pi*X/2)+10; y_1=sin(pi*X/2)+10; plot(y_1,x_1,'k','LineWidth',15) hold on K=1:0.001:40; x_2=4*cos(pi*K)+10; y_2=4*sin(pi*K)+10; plot(y_2,x_2,'b','LineWidth',10) axis equal