| ßozis | 05.10.2004 - 14:17:14 |
| SelamunAleykum
switch case ile 0 - 24 arası 'F' 25 - 44 arası 'E' 45 - 54 arası 'D' 55 - 69 arası 'C' 70 - 84 arası 'B' 85 - 100 arası 'A' yukarıdaki işlemi yapmak istiyorum. Böyle bir örneği pascal'da [ 0..24 ] şu şekilde yapıyordum. Bu işlemi C 'de nasıl yapabilirim. Teşekkür ederim. | |
| husonet | 05.10.2004 - 14:42:54 |
| A.S.
switch (ifade) {
case ifade1: case ifade2: case ifade3: ....... case ifaden: default : } Sorunuza Gelelim 0 - 24 arası 'F' 25 - 44 arası 'E' 45 - 54 arası 'D' 55 - 69 arası 'C' 70 - 84 arası 'B' 85 - 100 arası 'A' printf("%2d", Bak);
switch (bak) { case 1 : case 24: printf("F"); break; case 25 : case 44: printf("E"); break; case 45 : case 54: printf("D"); break; case 55 : case 69: printf("C"); break; case 70 : case 84: printf("B"); break; case 85 : case 100: printf("A"); break; default : printf("Yanlış Veri "); } Böyle bir şey olmalı ama tam hatırlayamıyorum. Kolay Gelsin... | |
| ßozis | 05.10.2004 - 15:39:02 |
| göndermiş olduğunuz kodlar sadece 1 ve 24 bastığımda F diğerleri de aynı şekilde çalışıyor... ben 1 ile 24 arası bir rakam girdiğimde bana F vermesi lazım.. teşekkürler... | |
| bk | 05.10.2004 - 15:44:14 |
| switch te belirtilen ifade uygun olan case zıplar ve break komutuna kadar işler eğer caselerden hiç birine uymuyorsa default işler
husonetin verdiği kodda mesela 2 değeri için default işler printf("Yanlış Veri "); | |
| ßozis | 05.10.2004 - 15:48:30 |
| hocam;
benim istediğim 0 ile 24 arasında sayı girdiğimde bana 'F' vermesi ama bunu bir türlü yapamadım.Bunu nasıl yapabilirim... Teşekkür ederim. | |
| husonet | 05.10.2004 - 15:53:11 |
| Biraz hatırlar gibi oldum :P istediğiniz gibi yapabilirsiniz ama
Case 1: Case 2: Case 3: .................... gibi yapmalısınız. istediğiniz şekilde if kullanarak yapabilirsiniz zaten Case yapısını genelde C de program geliştirirken Menu sisteminde kullanırdım. Ya uzun yol seçeceksiniz yada if den yararlanacaksınız... Kolay Gelsin... | |
| gkimirti | 05.10.2004 - 15:58:32 |
| ewt bu durumda switch case kullanmak pek mantıklı olmaz 8) | |
| ßozis | 05.10.2004 - 16:08:16 |
| gökmen hocam;
peki 0 ile 24 arası bir sayı girdiğimde bana 'F' vermesini stiyorum. Bu işlem switch case ile olur mu olmaz mı. teşekkür ederim. | |
| gkimirti | 05.10.2004 - 16:19:02 |
| Case 0:
Case 1: Case 2: Case 3: . . . Case 24:printf("F"); break; bu sekilde calısması lazım, ben de denemedim baska yerlerde de bu sekilde tarif ediliyor dedigim gibi hic efektif degil if kullan if(sart>=0 && sart<=24)then
printf("F"); gibi | |
| ßozis | 05.10.2004 - 16:25:58 |
| anladım hocam bende if le çözdüm.. ama switch case ilede case 1: case 2:
case3: gibi yapmak istemiyorum.. okulda elemanın teki bunu switch case ile yapılabileceğini ama yukarıdaki gibi case 1: case 2: ... gibi değil switch case üstünde bir şeyler yazarak yapabileceğini söylüyor ... bende onun için soruyorum böyle bir şey olabilirmi diye; | |
| doganzorlu | 06.10.2004 - 10:28:54 |
| Selam,
Sanırım arkadaşınız switch içine girmeden verdiğiniz bağıntıdan bir not aralığı yakayıp o aralıkları case ile kontrol etmeyi düşünüyor. Bu ise daha uzun bir işlem. Aslında çok kolayca; if (not > 84) cNot = 'A' else if (not > 69) cNot = 'B' else if (not > 54) cNot = 'C' else if (not > 44) cNot = 'D' else if (not > 24) cNot = 'E' else cNot = 'F' ; şeklinde yapılabilir. (ki yapmışsınız zaten). | |
| ßozis | 06.10.2004 - 10:39:40 |
| doğan hocam teşekkür ederim.. evet if ile çok basit bir şekilde halle dilebilir.. ama eleman switch case ile yaptığını söylemişti..bu gün okulda gösterecek bende inşallah yazarım ama bende pek fazla inanmıyorum çünkü switch case'nin syntax' ı belli bunun haricinde bir şeyle yazmış isede zaten ben kabul etmem.. eleman ile aramızda tatlı bir idda oluştuda :)
tüm arkadaşlardan allah razı olsun ... | |
| warder | 07.10.2004 - 22:08:09 |
if (not > 100) /*hata mesajı */; else if (not > 84) cNot = 'A' ; else if (not > 69) cNot = 'B' ; else if (not > 54) cNot = 'C' ; else if (not > 44) cNot = 'D' ; else if (not > 24) cNot = 'E' ; else cNot = 'F' ; doganzorlu hocam aceleye getirmiş. ilk satır ile daha uygun olur sanırım. Ayrıca satırlardaki sıralamayı değiştiriseniz sonuç alamazsınız. | |