02 Kasım
2007
Bilgisayar & Bilmuh'cular için & C#
İlk algoritma ödevimiz ve benim çözümüm…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | #include <stdio.h> #include <stdlib.h> int main() { printf("Umut BENZER\n"); printf("05-06-7670\n"); printf("IZSU Aylik Su Tuketim Faturasi Duzenleme\n\n"); int abonetipi; int okuay; int okugun; int guncelsayac; int oncekigun; int oncekisayac; int aydakigun=31; // Girilen ayda kac gun oldugunu tutacak. Varsayilan olarak 31 atali. int oncekiay; // Bunun nedeni bir yildaki aylarin cogunun 31 cekmesi. Etkilik acisindan int oncekiaydakigun=31; // ay sadece 31 cekmiyorsa ileride case dongusunde bir sarta girilecek. int kacgungecti; int tuketim; float kademe1; float kademe2; float kademe3; float kademe1fiyat; float kademe2fiyat; float kademe3fiyat; float kademe4fiyat; float fiyat; float kalan; // Ileride kalan = tuketim gececek. Bunun nedeni ekrana bu ay 0.000 ton harcadiniz yerine // 0 ton harcadiniz yazdirmak. Yoksa tek float degiskeni de kullanabilirdim. printf("Abone tipi kodunu giriniz:\n"); scanf("%d",&abonetipi); if (abonetipi>4 || abonetipi<1) { printf("Abone tipi hatali. Program sonlanacak."); return 0; } printf("Sayacin okundugu ay:\n"); scanf("%d",&okuay); if (okuay>12 || okuay<1) { printf("Ay girdisi hatali. Program sonlanacak."); return 0; } printf("Sayacin okundugu gun:\n"); scanf("%d",&okugun); switch (okuay) // 1 OC 31 { // 2 SU 28 case 4: // 3 MA 31 case 6: // 4 NI 30 case 9: // 5 MA 31 case 11: // 6 HA 30 aydakigun = 30; // 7 TE 31 break; // 8 AG 31 case 2: // 9 EY 30 aydakigun = 28; // 10 EK 31 } // 11 KA 30 // 12 AR 31 if (okugun<1 || okugun>aydakigun) { printf("%d. ayda %d. gun yok. Program sonlanacak.",okuay,okugun); return 0; } printf("Guncel sayac degeri:\n"); scanf("%d",&guncelsayac); // ve sayac 0'dan az olamaz degil mi? En azindan bizim evdeki sayacda yok :) if (guncelsayac<0) { printf("Sayac eksi deger almaz. Sizi sistemden atiyoruz."); return 0; } printf("Bir onceki ay sayacin okundugu gun:\n"); scanf("%d",&oncekigun); oncekiay = okuay - 1; if (oncekiay==0) oncekiay = 12; // Eger güncel ay ocaksa, bir onceki ay araliktir. switch (oncekiay) // 1 OC 31 { // 2 SU 28 case 4: // 3 MA 31 case 6: // 4 NI 30 case 9: // 5 MA 31 case 11: // 6 HA 30 oncekiaydakigun = 30; // 7 TE 31 break; // 8 AG 31 case 2: // 9 EY 30 oncekiaydakigun = 28; // 10 EK 31 } // 11 KA 30 // 12 AR 31 if (oncekigun<1 || oncekigun>oncekiaydakigun) { printf("%d. ayda %d. gun yok. Program sonlanacak.",oncekiay,oncekigun); return 0; } printf("Eski sayac degeri:\n"); scanf("%d",&oncekisayac); if (oncekisayac>guncelsayac) { printf("Gecen ayin sayac degeri simdikinden buyuk. Program sonlancak."); return 0; } // ve sayac 0'dan az olamaz degil mi? En azindan bizim evdeki sayacda yok :) if (oncekisayac<0) { printf("Sayac eksi deger almaz. Sizi sistemden atiyoruz."); return 0; } printf("\n*** Ciktilar ***\nAbone tipi: "); switch (abonetipi) { case 1: printf("Konut"); //Oncelikle ev kullanicilarini yazalim, cunku en cok onlardan var. Etkinlik meselesi. kademe1 = 13.0/30.0; kademe2 = 7.0/30.0; kademe3 = 8.0/3.0; kademe1fiyat = 1.19; kademe2fiyat = 3.09; kademe3fiyat = 5.00; kademe4fiyat = 6.13; break; case 2: printf("Konut disi"); kademe1 = 0; kademe2 = 1.0/3.0; kademe3 = 1.0/3.0; kademe2fiyat = 4.13; kademe3fiyat = 4.75; kademe4fiyat = 6.53; break; case 3: printf("Resmi daire"); kademe1 = 0; kademe2 = 0; kademe3 = 0; kademe4fiyat = 3.55; break; case 4: printf("Okul-Hastane"); kademe1 = 0; kademe2 = 0; kademe3 = 0; kademe4fiyat = 2.84; break; } printf("\n\nOnceki sayac okuma bilgileri\n AY: %d, GUN: %d, SAYAC DEGERI: %d\n",oncekiay,oncekigun,oncekisayac); printf("\nSimdiki sayac okuma bilgileri\n AY: %d, GUN: %d, SAYAC DEGERI: %d\n\n",okuay,okugun,guncelsayac); kacgungecti = oncekiaydakigun - oncekigun + okugun; printf("Son sayac okunmasindan bu yana %d gun gecti.\n",kacgungecti); tuketim = guncelsayac - oncekisayac; printf("Bu ayin tuketim miktari: %d ton.\n",tuketim); // kalan degiskeni float tuketim int, cunku ekranda x.0000 ton yazmasini istemiyorum. kalan = tuketim; kademe1=kademe1*kacgungecti; kademe2=kademe2*kacgungecti; kademe3=kademe3*kacgungecti; if (kalan>kademe1) { // Eger program buraya geliyorsa demek ki bir kismi kademe1'den ucretlendirilecek, kalani 2'ye aktarilacak. fiyat = kademe1 * kademe1fiyat; kalan = kalan - kademe1; // Kalan kismi kademe 2'ye gonder if (kalan>kademe2) { // Odeme kademe 3'e de sarkacak. fiyat = fiyat + kademe2 * kademe2fiyat; kalan = kalan - kademe2; // Kalan kismi kademe 3'e gonder. if (kalan>kademe3) { // Odeme kademe 4'e de sarkacak, aboooo fiyat = fiyat + kademe3 * kademe3fiyat + (kalan - kademe3) * kademe4fiyat; } else { fiyat = fiyat + kalan * kademe3fiyat; } } else { // Odeme kademe 2 de tamamlaniyor. fiyat = fiyat + kalan * kademe2fiyat; } } else { // Burada parantez olmasina gerek yok, farkindayim ama diger turlu kafam karisiyor. fiyat = kalan * kademe1fiyat; // Odemenin tamami 1.Kademeden gerceklesitiriyor... } float kdv; kdv = fiyat*8.0/108.0; printf ("KDV %8: %f\n",kdv); printf ("KDV DAHIL %f YTL ODENMESI GEREKIYOR.",fiyat); return 0; } |
Dikkat: Çözümümü ödev gönderme süresi bittikten sonra web siteme ekledim, bir sorun olacağını sanmıyorum. Kaynak kodu sadece paylaşım amaçlı, bire bir kopyalamak yasak. .png)
Bu kaynak koduyla 100 almış bulunmaktayım. .png)













Bu yorumu tucasso 10 Kas 2007 tarihinde saat 19.52 iken yazdı.#
ooo tebrik ederim.png)