' IF - ELSEIF - ELSE - END ' QUERY IN SCILAB [TUTORIAL LESSON 6]

in utopian-io •  7 years ago  (edited)

Hi There;

In this lesson we will teach the function of 'if-elseif-else-end' commands by taking another step after the 'if-else-end' commands from the query. The 'elseif' command tells us other conditions after the condition.

Herkese Merhabalar;

Bu dersimizde sorgulama yapılarından olan ' if-else-end ' komutlarının ardından bir adım daha atarak ' if-elseif-else-end ' komutlarının işlevini öğreteceğim. ' elseif ' komutu bizlere koşuldan sonraki diğer koşulları belirtir.

Bir önceki dersimizde ' if-else-end ' komutlarındaki işlevi belirttim. Bir başka adım olan ' if-elseif-else-end ' sorgu yapımız aslında bütün bu önceki iki ders için ' if ' sorgu yapısına göre en ayrıntı isteyen ama en çok işimize yarayacak olan sorgu yapılarından biridir. Bu sorgu yapısındaki kodlardan ' if ' , ' else ' , ' end ' komutlarını artık öğrendiniz. Şimdi ise yeni bir kod girişi olan ' elseif ' kodumuzu kısaca açıklayacak olursak, sorgulama ayrıntı istediği için birden fazla sorgulama işlemi gerçekleştirilir. Bu ise bize şart belirtmemiz gerektiğinde sadece ' if ' komutuyla şartı belirtmemiz gerekmediğini ve bu şartlara göre programımızın cevap verme işlemini gerçekleştirebileceğimizi gösteriyor.
İsteyen arkadaşlar önceki iki dersin içeriğine bu adreslerden ulaşabilirler;
LESSON 5
LESSON 4

1.ADIM

Bu adımımızda önceki derslerimizde olduğu gibi öncelikle basit bir giriş yaparak mantığını kavrayalım daha sonrasında detaylı bir kod yazımı gerçekleştirelim. Tabiki de öncelikle her zamanki gibi değişken girişlerimizi yapmalıyız. 0-100 arası not ortalamalarının harf notuna dönüşme işlemini gerçekleştirelim. Gereken işleme başlayalım;

vize=input('Vize Notunuzu Giriniz = ');
final=input('Final Notunuzu Giriniz = ');
not=(vize*0.45+final*0.55);
disp([not],'Ortalama Sonucu Notunuz : ');
if(not<=25)
disp('FF');
elseif(not<=36)
disp('FD');
elseif(not<=44)
disp('DD');
elseif(not<=56)
disp('DC');
elseif(not<=63)
disp('CC');
elseif(not<=74)
disp('CB');
elseif(not<=85)
disp('BB');
elseif(not<=90)
disp('BA');
elseif(not<=100)
disp('AA');
else
disp('Lütfen 100 Puandan Fazla Giriş Yapmayanız.');
disp('Böyle Bir Durum Söz Konusu Olamaz.');
end

Şeklinde SCILAB yazılım programımıza girişlerimizi yapmamızın ardından ekrandaki görüntümüz;

Adsız.jpg

Tamamlayıp kaydettikten sonra çalıştırmaya başlayalım ve vize, final notlarımızın girişini tamamladıktan sonra programımızın cevabını öğrenelim. Vize notumuz ' 46 ', final notumuz ise ' 83 ' olsun. Programımıza girişlerini tamamladıktan sonra ekranda oluşan görüntümüz;

Adsız2.jpg

Şeklinde hesaplayarak ortalama notumuzu ve harf notumuzun değerini bize cevaplamıştır.

2.ADIM

Küçük bir ayrıntıya değinecek olursam önceki dersimizden öğrettiğim bilgiye dayanarak ' else ' komutumuz bize sorgu koşullarını sağlamadığı takdirde programın bize cevap verdiği durumlarda işlev görür demiştik. Peki şimdi ise 100 üzeri bir not girişi yaparsak ne olur hep birlikte görelim. Vize notumuz ' 96 ' final notumuz ise ' 115 ' olarak girişini tamamlarsak ekrandaki görüntümüz;

Adsız3.jpg

Gördüğümüz üzere kodumuzda ' else ' komutundan sonra yazdığımız ' disp ' girişleri 100 den fazla bir not ortalamasına sahip olunduğunda karşımıza çıkmasını istediğimiz cevapları bize sunmuş oldu.

3.ADIM

Bu adımımızda belirttiğim üzere şimdi daha detaylı bir yazılım işlemi gerçekleştirelim. ' LESSON 5 ' dersimizde radar hız kontrolü sonucunda uygulanak para cezası işlemi gerçekleştirmiştik. Bu işlemimizi ' elseif ' komutuyla daha da detaylandıralım.

Yine şehiriçi hız limitimiz 50 km/h olarak belirlensin ve bu sefer bu 50 km/h hız limitini her %20 artışta para cezası %15 artışa geçsin. Önceki dersimizde 50 km/h hız limitini aşan sürücülere 110 TL para cezası kesiliyordu. Yine 50 km/h hızın ilk %20'lik kısmı 110 TL olarak kesilmeye başlansın ve artış miktarı göz önünde bulundurularak en son limit 100 km/h ten sonra para cezası sabit olarak değerlendirilsin. Tabi ki de şehir içinde 100 km/h hızı aşanlar için de ayriyeten bir cezai işlem uygulansın. Gereken kodlarımız şu şekildedir;

hızdegeri=input('Lütfen Sürücü Hız Değerini Giriiniz : ');
hızdegeri1=(50*0.2+50);
hızdegeri2=(hızdegeri1*0.2+hızdegeri1);
hızdegeri3=(hızdegeri2*0.2+hızdegeri2);
hızdegeri4=100;
if hızdegeri<50
disp('Sürücü Şehiriçi Hız Limitini Aşmamaktadır.');
elseif(hızdegeri<hızdegeri1)
disp('Sürücü Şehiriçi Hız Limitini Aşmış Bulunmaktadır.');
disp('Sürücüye Uygulanması Gereken Para Cezası 110 TL ');
elseif(hızdegeri<hızdegeri2)
disp('Sürücü Şehiriçi Hız Limitini Aşmış Bulunmaktadır.');
disp('Sürücüye Uygulanması Gereken Para Cezası 116.50 TL ');
elseif(hızdegeri<hızdegeri3)
disp('Sürücü Şehiriçi Hız Limitini Aşmış Bulunmaktadır.');
disp('Sürücüye Uygulanması Gereken Para Cezası 133.97 TL ');
elseif(hızdegeri<hızdegeri4)
disp('Sürücü Şehiriçi Hız Limitini Aşmış Bulunmaktadır.');
disp('Sürücüye Uygulanması Gereken Para Cezası 154.06 TL ');
else(hızdegeri>hızdegeri4)
disp('Sürücü Şehiriçi Hız Limitini Aşmış Bulunmaktadır.');
disp('Sürücüye Uygulanması Gereken Para Cezası 177.16 TL ');
disp('Araç Durdurulup Sürücüye Alkol Testi Yapınız!');
end

Yazmamızın ardından ekrandaki görüntümüz;

Adsız.jpg

4.ADIM

Şimdi ise birer hız değerleri girerek kodumuzun doğru çalıştığına emin olalım. İlk olarak 50 km/h hız değerinden düşük bir değer girelim;

Adsız2.jpg

Şeklinde hız limitini aşmadığımızı belirtti şimdi ise 50 km/h hızı %10 daha fazlası olan 60 km/h hız değerinden daha yüksek bir hız değerinin girişini yapalım;

Adsız3.jpg

Şimdi ise 100 km/h hızı aşan bir hız değeri girişini yapalım;

Adsız4.jpg

Yazılımımızı bu şekilde güvenle teslim etmiş oluruz.

Bu dersimizde ' if-elseif-else-end ' komutlarının yardımıyla sayısal not girişinden harf notu belirleme ve radar hız kontrol sonucu verilerine dayanarak girişi yapılan sayısal hız değerlerinin para cezası karşılığının cevaplarını almış olduk. Umarım faydalı bir anlatım olmuştur. Soru ve görüşlerinizi yorum kısımlarından yayınlayarak bana ulaştırabilirsiniz. Koşula bağlı sorgu yapılarımızın son bir dersini daha işledikten sonra sorgulama yapıları dersimizi bitireceğiz. Herkese iyi çalışmalar dilerim.

Son olarak bu dersimizde yazdığımız komutların cevabını yayınlıyorum;

Adsız5.jpg

Adsız6.jpg

Adsız7.jpg

GITHUB LINK



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @safakcoban I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x