Şimdi Ara

'C' Dilinde Asal Ortak Bölen Hesaplama Nasıl Yapabilirim ? Yadrdım Lütfen !

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
292
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Her keze selam.

    Kızımın dönem ödevi için “ C “ de şu kodu yazması gerikor. Konu şu: “ 2 sayının en büyük 2 ortak asal bölenlerinin çarpımı” bunu C de tam bölen olarak yapabiliyorum ama "ortak asal bölen" olarak yapmak nasıl olacak bilemiyorum. Örnek kod yazabilen varsa sevinirim. Teşekkürler. "DEv C++" kullanıyorum. Format .c olmalı.




  • 2 tane olacagını ne meçhul 1 tane çıkarsa ne olacak ?

  • Yazdıgınız kodu gönderir misiniz ?

    < Bu ileti mini sürüm kullanılarak atıldı >
  • I0SER_b0y kullanıcısına yanıt

    elbette sonuç "sıfır" diyecek.

  • Bu başlığa cevabı, Kendisinin youtube kanalı olan arkadaşımız çok güzel cevapladı Kendisine bir kez daha teşekkür ediyorum.. kanalına abone olmanızı şiddetle öneririm. Kanalı "

    Mucit Yazılım " link:

    https://www.youtube.com/channel/UCZvtPTPYv5rwVI9qHpd6rnQ


    Bana göndermiş olduğu denklem de şu şekilde paylaşıyorum;


    *********************************************************************************************************

    #include <stdio.h>

    #include <stdlib.h>

    int asalMi( int sayi ) 

    {

    int i , sonuc =1; 

      for( i = 2; i <= sayi/2; i++) {

         if(sayi % i == 0) {

          sonuc = 0;

          break;

         }

        } 

        

        return sonuc ; 

    }


    int tamBolenBul( int sayi1, int sayi2 ) 

    {

    int sonuc1=0, sonuc2=0, tamSonuc=0; 

    int ikinciBuyukAsal=0, birinciBuyukAsal=0; 

      int bol, bolum1, bolum2; 

       for(bol = 2; bol<=sayi1 && bol<=sayi2 ;bol++){

       bolum1=sayi1 % bol;

       bolum2=sayi2 % bol;

      

       if(bolum1== 0 && bolum2==0 ){

      

       if( asalMi(bol) ) 

       {

       printf("%d    asal \n", bol ) ; 

      

       if( ikinciBuyukAsal==0 )

       {

       ikinciBuyukAsal=bol; 

       tamSonuc=1; 

      

    }

       else if( birinciBuyukAsal==0 ) 

       birinciBuyukAsal= bol; 

       else 

       {

       ikinciBuyukAsal= birinciBuyukAsal; 

       birinciBuyukAsal= bol; 

       tamSonuc=1; 

    }

       continue; 

    }

    printf("%d \n",bol);

      

      

       }

       }

      

       if( tamSonuc==0)

       return 0; 

    else

    {

    printf("\nikinci buyuk asal sayi : %d \n", ikinciBuyukAsal) ; 

    printf("\nbirinci buyuk asal sayi : %d \n", birinciBuyukAsal) ; 

    return ikinciBuyukAsal * birinciBuyukAsal;  

      

    }

    }


     




    int main() 

    {

    int s1,s2; 

    printf("sayi1: ") ; scanf("%d", &s1); 

    printf("sayi2: ") ; scanf("%d", &s2); 

     

    printf("\nOrtak tam bolenleri : \n\n"); 

    int sonuc= tamBolenBul(s1,s2);

    if(sonuc==0)

    printf("\nGirdiginiz sayilar arasinde tam bolen iki ortak asal sayi yok ! \n"); 

    else 

    printf("\nsonuc: %d \n" , sonuc ); 

      

    return 0;

    }

    *****************************************************************************************************************





  • mikemercyy M kullanıcısına yanıt

    Uğraştığınız/yazdığınız kadar kodu koymadan cevap istemişsiniz. Emek yok. Kızınız ne öğrendi merak ediyorum?. Yanlış yaptınız.

    Ayrıca paylaştığınız kodun okunurluğu düşük. Hem de optimum değil. Yarısı kadar satırda, daha hızlı ve anlaşılır yapmak mümkün.

  • olumsuz eleştirini yeni gördüm. Ödevi öyle teslim etmedi bu şekilde teslim etti. Umarım bu seni "MUTLU" eder. ***Lütfen sorunlu ruh hali ile cevap yazmayın !!!*** Ödev:


    #include <stdio.h>

    #include <stdlib.h>

    //* Hazırlayan:

    //* Sınıf:

    //* No:

    //* Konu: Rastgele iki sayının en büyük iki asal böleninin çarpımı nedir

    //* Bunu c'de yazarken şu komutları ve işaretleri kullanacağız

    /*

    1. int ; Tamsayı değerlerini tutmak için kullanılır.

    2. for ; Döngüler, bir işlemin belli bir koşul altında tekrar edilmesi için kullanılır.

    3. if ; Koşula bağlı işlem satırı veya satırları çalıştırma olanağı sağlayan komut.

    4. break ; Koşul gerçekleştiğinde döngüden çıkmak için kullanılır.

    5. return; bir fonksiyondan çıkış yapmak ve program içinde fonksiyon çağrısının yapıldığı işlem satırından

    bir sonraki işlem satırına geçiş yapmak için kullanılır.

    6. printf; Bir string değişkeni ekrana yazdırmak için %s argümanını kullanılır. char str[]="C Programlama

    Dili"; printf("%s",str); İşaretli int ve long değişkenleri onluk sistemde ekrana yazdırmak için %d

    veya %i kullanılır

    7. else; if-else Yapıları : Bu yapılar, koşullu işlem yapan kontrol yapılarıdırlar. Eğer bu koşul olumlu ise

    if den sonraki bölüm yürütülür ve else den sonraki bölüm atlanır. Koşul olumsuz ise (else=değilse)

    if den sonraki satırlar atlanır ve eğer varsa,else den sonraki işlemler gerçekleştirilir.

    8. continue;tanımlı değeri döngüde görünce döngünün başına dönmek

    9 & İlk şart sağlanmasa bile devamındaki şartlara da bakar.

    9. && (and) ve kapısı; Her iki değerde 1 döndürüyorsa sonuç 1’dir. Eğer döndürmüyorsa sonuç 0’dır.

    */


    int asalMi( int sayi ) //* asal sayıyı (girilen değerde tanımlama)

    {

    int i , sonuc =1; //* ekrana girilen tam sayı ve "sonuç" değişkeni 1 ise

    for( i = 2; i <= sayi/2; i++) { //* koşul şu (tam sayı 2 ye eşit ve girilen değer eşit veya küçükse sayı değişkenin bölünmesine bak bölünüyorsa devam et

    if(sayi % i == 0) { //* sayı ve tam sayı değerleri sıfır olursa

    sonuc = 0; //* sonuç değişkeni sıfır olur ise

    break; //* döngüden çık

    }

    }

    return sonuc ; //* sonuc tanımına geri dön

    }


    int tamBolenBul( int sayi1, int sayi2 ) //* tam bölen bul (girilen sayı 1 ve 2 için)

    {

    int sonuc1=0, sonuc2=0, tamSonuc=0; //* 1.ve 2. sayı sıfır, tamsonuç sıfır ise

    int ikinciBuyukAsal=0, birinciBuyukAsal=0; //* 2. ve 1. büyük asal sayı sıfır ise

    int bol, bolum1, bolum2; //* böl,bölüm1, bölüm2 tanımla

    for(bol = 2; bol<=sayi1 && bol<=sayi2 ;bol++){ //* koşul (böl 2 ye eşit, böl sayı1-2 den küçük veya eşit ise işlemi tekrarla

    bolum1=sayi1 % bol; //* bölüm 1 sayı1 eşitse yukarıdaki işlemi yap

    bolum2=sayi2 % bol; //* bölüm 2 sayı1 eşitse yukarıdaki işlemi yap

    if(bolum1== 0 && bolum2==0 ){ //* bölüm 1 ve bölüm 2 işlemleri sıfır oluyor ise

    if( asalMi(bol) ) //* asalmi tanımı içinde böl

    {

    printf("%d asal \n", bol ) ; //* ekrana asal değerin altına bol değişkenini yaz

    if( ikinciBuyukAsal==0 ) //* eğer(if) ikinciBüyükasal 0'a eşit ise

    {

    ikinciBuyukAsal=bol; //* ikinciBüyükasal değer bol değerine eşitse

    tamSonuc=1; //* tamsonuc 1

    }

    else if( birinciBuyukAsal==0 ) //* değilse (else) eğer(if) birincibüyükasal 0 ise

    birinciBuyukAsal= bol; //* birinciBuyukAsal eşitse bol değerine

    else //* "değilse" yukarıdaki koşul devam et

    {

    ikinciBuyukAsal= birinciBuyukAsal; //* ikinciBuyukAsal eşitse birinciBuyukAsal

    birinciBuyukAsal= bol; //* ikinciBuyukAsal

    tamSonuc=1; //* tamsonuc değişkeni eşitse 1'e

    }

    continue; //* devam et

    }

    printf("%d \n",bol); //* bol değişken değerini alt satıra yaz

    }

    }

    if( tamSonuc==0) //* eğer tamsonuc 0 ise

    return 0; //* sıfıra dön

    else //* değilse

    {

    printf("\nikinci buyuk asal sayi : %d \n", ikinciBuyukAsal) ; //* ikinciBuyukAsal değeri sonucu alt satıra bas

    printf("\nbirinci buyuk asal sayi : %d \n", birinciBuyukAsal) ; //* birinciBuyukAsal değeri sonucu alt satıra bas

    return ikinciBuyukAsal * birinciBuyukAsal; //* ikinciBuyukAsal ve birinciBuyukAsal dğerlerine dön ve çarp

    }

    }

    int main() //* sonucu, yukarıdaki işlemlerin alına devam edeceğimiz değerler

    {

    int s1,s2; //* iki değişken belirliyoruz

    printf("sayi1: ") ; scanf("%d", &s1); //* sayı1 değeri ekrana bas girilen tam sayı s1 şartını bak devam et

    printf("sayi2: ") ; scanf("%d", &s2); //* sayı2 değeri ekrana bas girilen tam sayı s2 şartını bak devam et

    printf("\nOrtak tam bolenleri : \n\n"); //* "nOrtak tam bolenleri" ifadesini alt satıra bas ve alt satırdan devam et

    int sonuc= tamBolenBul(s1,s2); //* x satırdaki sonuç denklemi eşitse tamBolenBul(s1,s2) sonuç denklemine

    if(sonuc==0) //* ve eğer sonuç denklemi eşitse sıfıra aşağıdaki ifadeyi bas alt satıra

    printf("\nGirdiginiz sayilar arasinde tam bolen iki ortak asal sayi yok ! \n");

    else //* değilse

    printf("\nsonuc: %d \n" , sonuc ); //* SONUÇ

    return 0;

    }

    /* "C" NEDİR? TANIMI VE KULLANIM ALANLARI

    C yazılım dili yüksek seviyeli aynı zamanda geniş maksatlı bir programlama dili olarak karşımıza çıkıyor.

    Dennis Ritchie ve Brian Kernighan tarafından Bell Labs'da 1972 yılında geliştirilmiş ve kullanımına başlanmıştır.

    Ayrıca C programlama dili neredeyse hiç duyulmayan bir programlama bili olan B programlama dilinin tabanı esas

    alınarak geliştirilmiştir.


    C programlama dili ayrıca Firmware ve taşınabilir uygulamalar geliştirmek için öncelikli olarak tercih ediliyor.

    Günümüzde de hala en çok tercih edilen yazılım dili olarak karşımıza çıkan C programlama dilin kullanılarak

    geliştirildiği en önemli yazılım unix işletim sistemi olarak biliniyor. Çok sık tercih edilmesinin yanı sıra

    öğrenme aşaması da biraz uzundur.

    Özellikle güvenli uygulamalar ve sistemler geliştirmek için kullanılıyorsa çok titiz bir çalışma gerektirir.

    Gömülü sistem olarak değerlendirilen çamaşır makinesi hesap makinesi gibi makineleri de kodlayabilir.

    Ayrıca bu yazılım dili ile robot yapabilirsiniz. Bunların yanı sıra unix çekirdeği, Microsoft Windows programları,

    işletim sistemi uygulamaları ve android işletim sisteminin büyük bir bölümü c programlama dili kullanılarak

    oluşturulmuştur. Yeni bir programlama dilini oluşturmak içinde C programlama dilini de kullanabiliyorsunuz.

    Kısacası bu programlama dili teknolojinin her alanında ve her aşamasında öncelikli olarak tercih ediliyor. */





  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.