You are on page 1of 3

‫לולאות ותנאים‪:‬‬

‫לולאה אשר מחשבת את‬ ‫‪m=0‬‬ ‫לולאת ‪: for‬‬


‫הממוצע של ‪ ...2 ,1‬עד ‪7‬‬ ‫‪b=0‬‬
‫בכך שהיא ראשית מחשבת‬ ‫‪for n=1:7‬‬ ‫לולאת ‪ for‬הינה לולאת אשר‬
‫את סכום כלל האיברים‪ ,‬ולאחר‬ ‫‪m=m+n‬‬ ‫בדר"כ רצה מספר מסויים של‬
‫מכן לוקחת את התוצאה אשר‬ ‫‪b=b+1‬‬ ‫פעמים ואז נעצרת‪.‬‬
‫נשמרה בתא ‪ m‬ומחלקת אותו‬ ‫‪end‬‬ ‫כמות הפעמים שהלולאת‬
‫בכמות האיברים במערך אשר‬ ‫‪average=m/b‬‬ ‫תחזור על עצמה יוגדת ע"י‬
‫נספרה בתא ‪ b‬אשר כל מחזור‬ ‫ווקטור (תווך ערכים)‪,‬‬
‫של הלולאה גדל ב‪.1-‬‬ ‫ובמידה ונרצה להשתמש‬
‫בערכים אלו זה יהיה ווקטור‬
‫בתוכן של משתנה (למשל‪:‬‬
‫‪) n=1:7‬‬
‫תא ‪ n‬מקבל ערך אקראי טבעי‬ ‫)]‪n=randi([0 3‬‬ ‫תנאי ‪: if‬‬
‫בין ‪ 0‬ל ‪.3‬‬ ‫‪if n==1‬‬
‫התנאי בודק אם ‪ n‬שווה ‪ 1‬או‬ ‫)'‪disp('n is 1‬‬ ‫תנאי זה קובע שאם תוכן‬
‫‪ 2‬או שונה מהם ומציג הודעה‬ ‫‪elseif n==2‬‬ ‫התנאי (התוכן שהצבנו בתנאי)‬
‫מתאימה בהתאם לתוצאת‬ ‫)'‪disp('n is 2‬‬ ‫מתקיים אז תתקיים הפעולה‬
‫הבדיקה‪.‬‬ ‫‪else‬‬ ‫הבאה‪ ,‬לאחר מכן אם לא אז‬
‫‪disp('n is not 1‬‬ ‫במידה ונחיל תנאים נוספים‬
‫)'‪or 2‬‬ ‫הם יוקדמו ב‪elseif -‬‬
‫‪end‬‬

‫הלולאה מחשבת את העצרת‬ ‫;‪n = 10‬‬ ‫לולאת תנאי ‪: while‬‬


‫של הספרה ‪.10‬‬ ‫;‪f = n‬‬
‫מתבצע בכך שהלולאה חוזרת‬ ‫‪while n > 1‬‬ ‫‪ while‬היא לולאה אינסופית‬
‫על עצמה כל עוד ‪ n‬גדול מ‪,1 -‬‬ ‫;‪n = n-1‬‬ ‫הבודקת תנאי‪ ,‬במידה והתנאי‬
‫כל חזרה של הלולאה היא‬ ‫;‪f = f*n‬‬ ‫מתקיים אז מתבצע תוכן‬
‫מחסירה מ‪ n -‬אחד ומכפילה‬ ‫‪end‬‬ ‫הלולאה כל עוד התנאי נכון‪.‬‬
‫את המספר החדש בערך של‬ ‫' = !‪disp(['n‬‬
‫משתנה ‪ f‬ומכניסה אותו שוב‬ ‫)])‪num2str(f‬‬
‫ל‪ f-‬כך שלבסוף המשתנה ‪f‬‬
‫הוא עצרת (מכפלת המספרים‬
‫עד ‪ )1‬של הספרה ‪.10‬‬
‫הפקודה קולטת ערך‬ ‫‪n = input('Enter a‬‬ ‫תנאי ‪switch, case, otherwise‬‬
‫מהמשתמש ובהתאם לערך‬ ‫;)' ‪number:‬‬
‫מציגה על המסך את ההודעה‬ ‫תנאי זה לוקח ביטוי התחלה‬
‫המתאימה‪.‬‬ ‫‪switch n‬‬ ‫ב‪ switch -‬ובודקת אותו מול‬
‫‪case -1‬‬
‫כמה מקרים שנקבע‪ ,‬במידה‬
‫‪disp('negative‬‬
‫)'‪one‬‬ ‫והבדיקה מול מקרה מסויים‬
‫‪case 0‬‬ ‫מחזירה תוצאת אמת את‬
‫)'‪disp('zero‬‬ ‫הפקודות של מקרה זה‬
‫‪case 1‬‬ ‫יתבצעו‪.‬‬
‫‪disp('positive‬‬ ‫במקרה שאף אחד מהמקרים‬
‫)'‪one‬‬ ‫אינו אמת אז הפקודות תחת‬
‫‪otherwise‬‬ ‫ה‪ otherwise-‬יתקיימו‪.‬‬
‫‪disp('other‬‬
‫)'‪value‬‬
‫‪end‬‬
:‫לולאות ותנאים‬

:RC ‫ עם משדי"פ למעגל‬switch case‫דוגמא ל‬

syms Vc(t)
list = {'RC ‫'טורי עם מקור מתח‬,'RC ‫;}'מקבילי עם מקור זרם‬
n= listdlg('ListString',list)
R= input('Enter resistor value: ');
C= input('Enter capacitor value: ');
Tau=(1/(R*C))
switch n
case 1
disp('serial RC')
%‫מכאן נפתור את המשדי"פ‬
Vin= input('Enter voltage source value: ');
odeRC_S= diff(Vc,t)+Tau*Vc==Tau*Vin
cond=Vc(0)==0;
Vout(t)=dsolve(odeRC_S,cond)
Iout(t)=C*diff(Vout,t)
%‫מכאן נציג גרפית‬
% ‫גרף מתח הקבל‬
figure('Name', 'RC ‫'פתרון טורי‬,'NumberTitle','off', ...
'Color','white');
subplot(2, 1, 1);
fplot(Vout(t), [0, 5*tau]);
xlabel('t [sec]'); ylabel('Vc(t) [V]');
title('d(Vc(t))/dt + 1/\tau *Vc(t) = 1/\tau
*Vin(t)','FontSize',10);
grid on; legend('Vc(t) [V]');
% ‫גרף זרם הקבל‬
subplot(2, 1, 2);
fplot(Iout(t), [0, 5*tau]);
xlabel('t [sec]'); ylabel('Ic(t) [V]');
title('Ic(t) = C*d(Vc(t))/dt','FontSize',10);
grid on; legend('Ic(t)');
case 2
disp('Parallel RC')
% ‫פתרון המשדי"פ‬
Iin= input('Enter current source value: ');
odeRC_par = diff(Vc,t) + 1/tau*Vc == 1/C*Iin
% The kirhov voltage law in the RC circuit
cond = Vc(0) == 0;
% Intial condtions
Vout(t) = dsolve(odeRC_par, cond)
% Solve V_c(t)
Ic(t) = C*diff(Vout,t)
%‫תצוגה גרפית‬
figure('Name','Solution of parallel RC ...
circuit','NumberTitle','off','Color','white');
% ‫גרף המתח‬
subplot(2, 1, 1);
fplot(Vout(t), [0,5*Tau]);
xlabel('t [sec]'); ylabel('Vc(t) [V]');
title('d(Vc(t))/dt + 1/Tau *Vc(t) = 1/C*Iin(t)','FontSize',10);
:‫לולאות ותנאים‬
grid on; legend('Vc(t)');
% ‫גרף הזרם‬
subplot(2, 1, 2);
fplot(Ic, [0,5*Tau]);
xlabel('t [sec]'); ylabel('Ic(t) [A]');
title('Ic(t) = c*d(Vc(t))/dt','FontSize',10);
grid on; legend('Ic(t)');
end

You might also like