Şimdi Ara

C programlama

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
26
Cevap
0
Favori
885
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Girilen pozitif bir tam sayıyı çarpanlarına ayıran, eğer negatif bir sayı ya da sıfır girilirse (hatalı seçim durumunda) programı ''pozitif bir tamsayı girmediğiniz için program sonlandırılmıştır.'' şeklinde sonlandıran c projesi Dev-C++ derleyicisine uygun programı yazmakta yardımcı olabilicek var mıdır ?



    < Bu mesaj bu kişi tarafından değiştirildi Provas -- 26 Mayıs 2020; 16:42:12 >



  • Eminim İnternet'te 10.000 tane örneği var. bu ders sorularının hepsi aynı. Arayıp bulmak için kendin biraz zahmet et. Hatta bu forumda bile aynı soru defalarca sorulmuş olabilir.



    < Bu mesaj bu kişi tarafından değiştirildi K110 -- 26 Mayıs 2020; 17:3:9 >
  • Araştırdım fakat sürekli olarak asal çarpanlarına ayırma konusu var istediğim konu yok o yüzden bu konuyu açtım.
  • Eksi ve sıfır değerlerinde yapılacak işlemleri de "if" koşulları ile kendin ekleyeceksin.
  • K110 kullanıcısına yanıt
    Bu kısmı yapmayı biliyorum çarpanlarına ayırma kısmını nasıl kodlayacağımı anlayamadım.
  • Biraz, matematik derslerindeki formülleri hatırlamaya çalış.
  • örnegin 252 örnegini alalım

    çarpan olarak 2 x 2 x 3 x 7 x 3 gibi seklinde mi yazdıracaksın.

    biz bunu 4 x 9 x 7 olarak da ayırabilirdik

    4 x 3 x 3 x 7 olarak da asal olması bi barem oluyor.



    < Bu mesaj bu kişi tarafından değiştirildi I0SER_b0y -- 26 Mayıs 2020; 18:33:0 >
  • I0SER_b0y kullanıcısına yanıt
    şöyle örneklendiriyim 66 tamsayısını ele alırsak 1 2 3 6 11 22 33 66 şeklinde bi yazım olucak.
  • o zaman önce asal çarpanlarını bulacan sonra bu çarpanları da birbiriyle çarpıp yeni sayıları bulacan
  • Provas P kullanıcısına yanıt
    tek for loop ile olabilir

    for(i to n )
    if(n%i == 0)
    print(i)

    böylece bölen her sayıyı bulumuş olursun.
    https://prnt.sc/so7qyt sanırım söyle bir çıktı istiyorsunuz.



    < Bu mesaj bu kişi tarafından değiştirildi I0SER_b0y -- 26 Mayıs 2020; 19:32:6 >
  • I0SER_b0y kullanıcısına yanıt
    evet tam olarak bu çarpanlar kısmı
  • Provas P kullanıcısına yanıt
    aslında cok basit bir mantıgı var söylersem hiç bir kıymeti olmaz ama söyle diyeyim koşullar ve döngülerle yapılması lazım her durum tek tek sorgulanacak.
  • quote:

    Orijinalden alıntı: I0SER_b0y

    tek for loop ile olabilir

    for(i to n )
    if(n%i == 0)
    print(i)

    böylece bölen her sayıyı bulumuş olursun.
    https://prnt.sc/so7qyt sanırım söyle bir çıktı istiyorsunuz.
    Hocam burada gereksiz işlem fazlalığı oluyor sanki. Bunun yerine üstteki Gökşen_Paslı'nın yorumundaki gibi önce asal çarpanlarını bulup sonra onları birbiriyle çarptırırsak çarpanları buluruz. Yani mesela hem 2'ye hem 3'e bölünüyorsa zaten 6'ya da bölünüyor demektir burada 6'yı tekrar döngüde sorgulatmaya gerek yok. 2-3-5-7... vs... işte kaç tane asal çarpan varsa buna göre çarptırarak bulunur.

    66'yı ele alırsak 2-3-11 --> 3 tane asal çarpanı var.

    2 x 3 = 6
    2 x 11 = 22
    3 x 11 == 33

    +

    1 ve sayının kendisi olan 66'yı da katarız.

    1-2-3-11-22-33-66'yı buluruz.




  • asal çarpanlara ayırma kısmı kolay dediğiniz gibi nasıl ekleyebilirim ?
  • Provas P kullanıcısına yanıt
    suan yaptıklarını atarsan daha güzel olur ? böyle havada kalıyor.
  • Fulton F kullanıcısına yanıt
    bunu diziye atmadan yapamayız gibi.



    < Bu mesaj bu kişi tarafından değiştirildi I0SER_b0y -- 27 Mayıs 2020; 6:9:28 >
  • #include<stdio.h>

    int main(void){
    int sayi1,bol,bolum;
    printf("Pozitif bir tamsayi giriniz:");
    scanf("%d",&sayi1);
    for(bol = 1; bol<=sayi1;bol++){
    bolum=sayi1 % bol;
    if(bolum==0){
    printf(" %d ",bol);

    }
    }
    return 0;
    }

    Elimdeki program bu bunu nasıl -li bir sayi girildiğinde pozitif bir tam sayı girmediniz program kapatılıyor ve Pozitif sayı girildiğinde örnek veriyorum 66 girildi Girilen pozitif tamsayının(66) çarpanları: göstericek şekilde yapabilirim ?
  • Provas P kullanıcısına yanıt
    Program istediğim sonuçları veriyor geriye tek o kısımlar kaldı...
  • Provas P kullanıcısına yanıt
    scanf ile aldıgın sayıyı ilk kontrol ettir.
    degilse zaten bir mesaj yazdırır exit yaparsın.
  • Programa söylediğim şekilde ekleme yapabilicek olan varsa güzel olur.Pek beceremedim.
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.