C’de Çarpma ‘*’ İşlemi Kullanmadan Çarpma Yapma (Toplama İşlemi ile)
C Programlama dilinde çarpma işlemi ‘*’ kullanmadan toplama ile çarpma işlemi yapmayı örneklerden bulabilirsiniz. Birinci örnek algoritmayı anlamak için, ikinci örnek ise eksi ‘-‘ değer girildiğinde sorun çıkmaması için bir kaç kod eklenmiş hali. Kolaydan zora inceleyebilirsiniz.
C programlama dili toplama ile çarpma işlemi yapma
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 |
#include <stdio.h> #include <conio.h> //Çarpma işlemi kullanmadan Çarpma yapma (Fonksiyonsuz) //Cemalettin Serit ckaynak.com | teknooneri.com | cemserit.com int main(){ int sayi1, sayi2, i, sonuc=0; printf("Birinci Sayi: "); scanf("%d", &sayi1); printf("Ikinci Sayi: "); scanf("%d", &sayi2); for( i=0; i<sayi2; i++) sonuc += sayi1; printf("%d*%d= %d", sayi1, sayi2, sonuc); getch(); // Programın kapanmaması için (Klavyeden bir değer bekler) return 0; // Programı sonlandırır } |
Yukarıdaki kodda girilen ikinci sayi negatif bir değer olduğunda sonuç yanlış hesaplanıyor. Bunun çözümü için ise tüm değerleri önce pozitif değere dönüştürüp daha sonra işlem yapmak. Bu kodu ise fazladan 2 değişken ve if ile kontrol ederek yapabilirsiniz.
C’de negatif değerde sorun vermeyen, toplama işlemi ile çarpma yapma kodu
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 |
#include <stdio.h> #include <conio.h> //Çarpma işlemi kullanmadan Çarpma yapma (Fonksiyonsuz) //Cemalettin Serit ckaynak.com | teknooneri.com | cemserit.com int main(){ int sayi1, sayi2, i, sonuc=0, gecici1, gecici2; printf("Birinci Sayi: "); scanf("%d", &sayi1); printf("Ikinci Sayi: "); scanf("%d", &sayi2); gecici1 = sayi1; //Negatif bir değer girildiğinde sayıları kaybetmemek için geciciye atıyoruz gecici2 = sayi2; if(gecici1 < 0) // Negatif bir deger girildiğinde sayıları pozitif yapıyoruz gecici1 = 0 - gecici1; if(gecici2 < 0) gecici2 = 0 - gecici2; for(i=0;i<gecici2;i++) //Çarpma işlemini yaptığımız algoritma!!! sonuc += gecici1; if(sayi1 < 0 && sayi2 < 0) // Her iki sayıda negatif ise sonuc değişmesin ve pozitif kalsın sonuc = sonuc; else if(sayi1 < 0 || sayi2 < 0 ) //Girilen herhangi bir değer negatif ise sonucu negatif yapıyoruz sonuc = 0 - sonuc; printf("%d*%d= %d", sayi1, sayi2, sonuc); getch(); // Programın kapanmaması için (Klavyeden bir değer bekler) return 0; // Programı sonlandırır } |
Leave a reply
Lütfen yorum için giriş yap ve yakayıt ol Teşekkürler .