IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   C ve C++ (https://www.ircforumlari.net/c-ve-c/)
-   -   Menü ve Fonksiyonla Matematiksel İşlem (https://www.ircforumlari.net/c-ve-c/457033-menu-ve-fonksiyonla-matematiksel-islem.html)

aSi 27 Şubat 2012 18:16

Menü ve Fonksiyonla Matematiksel İşlem
 
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Bu programda switch yapısını, while döngüsü ve fonksiyonları kullandık. Menü seçenekleriyle toplama, çarpma, ebob, ekok ve yer değiştirme işlemlerinden biri seçilip işlem sonuçları fonksiyonlar kullanılarak ekrana yazdırılıyor.

Kod:

#include<stdio.h>
#include<conio.h>
int topla(int,int,int); // bu satırda fonksiyonun prototipi verilmiştir
// eger fonksiyonların prototipi main fonksiyonundan önce verilmezse fonsiyonun cagırıldıgı satıra gelindiginde
// derleyici fonksiyonu tanıyamaz.
// main den önce fonksiyonun prototipi verilmek yerine direk te tanımlanabilir.
int carp(int,int,int);
int ekok(int,int,int);
int ebob(int,int,int);
void yer_deg(int*,int*,int*);
int main()
{
    int sayi1,sayi2,sayi3;
    char tur;
   
    do
    { do{
       
    printf("\t\tİSLEM SECENEKLERİ\n\n\n\n");
    printf("                    a)toplama islemi\n");
    printf("                    b)carpma islemi\n");
    printf("                    c)sayilarin ebobu\n");
    printf("                    d)sayilarin ekoku\n");
    printf("                    e)sayilarin yer degistirmesi\n");
    printf("                    f)cikis\n\t\t\t");
    fflush(stdin);   
    scanf("%c",&tur);
   
    if(tur=='f')
      return 0; // kullanıcı f tusladıgında program return yazısını görür ve sonlanır
     
          }while(tur!='a'&&tur!='b'&&tur!='c'&&tur!='d'&&tur!='e');
    printf("                    uc sayi girmeniz gerekmektedir.\n");
    printf("                    birinci sayi :");
    scanf("%d",&sayi1);
    printf("\n");
    printf("                    ikinci sayi :");
    scanf("%d",&sayi2);
    printf("\n");
    printf("                    ucuncu sayi :");
    scanf("%d",&sayi3);
    printf("\n\t\t\tcevap:");
    switch(tur)
      {
              case 'a':  case 'A':
                    {
                          printf("%d",topla(sayi1,sayi2,sayi3)); // fonksiyon cagırılır islem yapıldıktan sonra sonuc yazdırılır
                          break;
                    }
              case 'b':  case 'B':
                    {
                          printf("%d",carp(sayi1,sayi2,sayi3));  // fonksiyon cagırılır islem yapıldıktan sonra sonuc yazdırılır
                          break;
                    }
              case 'c':  case 'C':
                    {
                         
                          printf("%d",ebob(sayi1,sayi2,sayi3));  // fonksiyon cagırılır islem yapıldıktan sonra sonuc yazdırılır
                          break;
                    }
              case 'd':  case 'D':
                    {
                          printf("%d",ekok(sayi1,sayi2,sayi3));  // fonksiyon cagırılır islem yapıldıktan sonra sonuc yazdırılır
                          break;
                    }
              case 'e':  case'E':
                    {
                          yer_deg(&sayi1,&sayi2,&sayi3);  // fonksiyon cagırılır islem yapıldıktan sonra sonuc yazdırılır
                          printf("\n                    birinci sayi :%d\n\n",sayi1); // sayıların bırer kaydırılmıs halı yazılır
                          printf("                    ikinci sayi :%d\n\n",sayi2);
                          printf("                    ucuncu sayi :%d\n\n",sayi3);
                          break;
                    }
                   
      }
      printf("\n\n");
    }
    while(1); // sonsuz döngü içinde sonlandırmak için if yapısı kullanıldı
}
int topla(int a,int b,int c)
{
    return a+b+c; // yukarıda fonksiyon ismi ve parametreleri okundugunda buraya gönderilir ve islem yapılır
}  // aynısı diger fonksiyonlar içnde gecerlidir
int carp(int a,int b,int c)
{
    return a*b*c;
}
int ebob(int a,int b,int c)
{
    int bolunen,bolum,kalan,x,ebob1;
    if(a<b)
    {
      x=a;
      a=b;
      b=x;   
    }
    bolunen=a;// ilk önce ilk iki sayinin ebobu alınır sonra bulunan ebobla ücüncü sayının ebobu alınır
    bolum=b;
    kalan=bolunen%bolum;
    while(kalan!=0)
    {
    bolunen=bolum;
    bolum=kalan;
    kalan=bolunen%bolum;
    }
    ebob1=bolum;
    if(ebob1<c)
    {
      x=ebob1;
      ebob1=c;
      c=x;       
    }
    bolunen=ebob1;
    bolum=c;
    kalan=bolunen%bolum;
    while(kalan!=0)
    {
       
    bolunen=bolum;
    bolum=kalan;
    kalan=bolunen%bolum;         
                 
    }
    return bolum;
}
int ekok(int a,int b,int c)
{
    return a*b*c/ebob( a, b, c);
}
void yer_deg(int *a,int *b,int *c) // yer degistirme işlemlerinde degerlerin adresleriyle islem yapılır
//  islemler degerlerin adresleri tutularak gerceklesir ki
    // sonradan bulunan sonuclar eski degerlerin üzerine yazdırılsın.
  // aksi taktirde yapılan islemler sonucunda bulunan degerler fonksiyon kapandıgında sona erer
  //diger islemlerde yeni sonuc elde edildigi için ve  main fonksiyonu içindeki ana tabiri degiştirmeye gerek
  //duyulmadıgı için degişkenlerin önüne * konulması gerekmez.(referansla cagırmaya gerek duyulmaz.)
{
    int x;
    x=*a;  // bir değişkenin yerine diğerini atamadan önce o değişken baska bir yerde saklanır ki kaybolmasın.
    // x yerel değişkendir main fonksiyonunda kullanılmadığı için önüne * konulması gerekmez
    *a=*b;
    *b=*c;
    *c=x;
   
   
}




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 19:10.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk