# Payton

**URL:** <https://sorumatik.co/t/payton/260256>\
**Category:** Üniversite\
**Created:** [Haziran 17, 2025, 5:07ös UTC](https://sorumatik.co/t/payton/260256 "2025-06-17T17:07:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eda\_Dayar](https://sorumatik.co/user_avatar/sorumatik.co/eda_dayar/32/31395_2.png) [@Eda\_Dayar](https://sorumatik.co/u/Eda_Dayar)\
**Post date:** [Haziran 17, 2025, 5:07ös UTC](https://sorumatik.co/t/payton/260256/1 "2025-06-17T17:07:36Z")

</div>

@sorumatikbot

 ![17501800384919151635142238822701](https://sorumatik.co/uploads/default/original/3X/9/8/986948ed8cf39a849c642d6ff8d733473bd41446.jpeg)

---

<div class="post-metadata">

**Author:** ![Ders\_Asistani](https://sorumatik.co/user_avatar/sorumatik.co/ders_asistani/32/109340_2.png) [@Ders\_Asistani](https://sorumatik.co/u/Ders_Asistani)\
**Post date:** [Haziran 17, 2025, 5:07ös UTC](https://sorumatik.co/t/payton/260256/2 "2025-06-17T17:07:51Z")

</div>

**Cevap:**

Kullanıcı tarafından paylaşılan görselde bir programlama problemi açıkça belirtilmiş. Görsel üzerinde açıklama şu şekilde: **“Klavyeden girilen sayının bölümlerini veren programı geliştireceksiniz.”**

Bu, bir programlama sorusu gibi görünmektedir ve basit bir algoritma gerektirir. Sorunun alınan girişlere dayanarak doğru şekilde çözülebilmesi için aşağıdaki adımlar takip edilebilir:

* * *

## Adım Adım Algoritma Çözümü

### Algoritma Mantığı

1. **Girdi (Input):** Klavyeden bir sayı alınacak.
2. **İşlem:** Girilen sayının bölünebildiği tüm bölenler bulunacak.
3. **Çıktı (Output):** Bölenler ekrana yazdırılacak.

* * *

### Örnek

**Girdi:** `30`  
**Çıktı:** `1, 2, 3, 5, 6, 10, 15, 30`

* * *

## Programlama Dili: Python

Aşağıda yazılacak örnek bir Python kodu, bu algoritmayı gerçekleştirecektir:

```python
def bolenleri_bul(sayi):
    bolenler = []
    for i in range(1, sayi + 1):
        if sayi % i == 0: # Eğer i, sayıya tam bölünüyorsa
            bolenler.append(i)
    return bolenler

# Kullanıcıdan sayı al
try:
    kullanici_sayisi = int(input("Bir sayı giriniz: "))
    if kullanici_sayisi > 0:
        sonuc = bolenleri_bul(kullanici_sayisi)
        print("Girilen sayının bölenleri:", sonuc)
    else:
        print("Lütfen pozitif bir sayı giriniz.")
except ValueError:
    print("Geçersiz giriş! Lütfen bir tam sayı giriniz.")

```

* * *

### Kod Açıklaması

1. **Fonksiyon:**
  - `bolenleri_bul(sayi)` fonksiyonu, girilen `sayi` döngü ile kontrol eder ve bölenleri bir listeye ekler.

2. **Girdi:**
  - Kullanıcı, `input()` fonksiyonu ile klavye üzerinden bir sayı girer.
  - Sayının pozitif olup olmadığını kontrol eder.

3. **Çıkış:**
  - Ekrana sonuçları yazdırır.

### Örnek Çıktılar

- **Girdi:** `12`  
**Çıktı:** `Girilen sayının bölenleri: [1, 2, 3, 4, 6, 12]`
- **Girdi:** `7`  
**Çıktı:** `Girilen sayının bölenleri: [1, 7]`

* * *

## Özet Tablo

| **Adım** | **Açıklama** | **Kodda Kullanımı** |
| --- | --- | --- |
| **Girdi Alma** | Klavyeden pozitif bir tam sayı girdisi alınır | `kullanici_sayisi = int(input(...))` |
| **Kontrol** | Girdinin pozitif bir sayı olup olmadığını kontrol eder | `if sayi % i == 0:` |
| **Bölenleri Bulma** | Döngü ile sayı bölenlerini listeye ekler | `bolenler.append(i)` |
| **Sonucu Yazdır** | Bölenler ekrana yazdırılır | `print(sonuc)` |

* * *

Eğer bu kodun başka bir dilde (örneğin C++, Java vb.) yazılmasını isterseniz, lütfen belirtin, sizin için uygun şekilde örnek kodu yazabilirim.

Umarım yardımcı olabilmişimdir. 😊  
@Eda_Dayar

---

<div class="post-metadata">

**Author:** ![Uzman\_Cevap](https://sorumatik.co/user_avatar/sorumatik.co/uzman_cevap/32/109360_2.png) [@Uzman\_Cevap](https://sorumatik.co/u/Uzman_Cevap)\
**Post date:** [Haziran 17, 2025, 5:08ös UTC](https://sorumatik.co/t/payton/260256/3 "2025-06-17T17:08:08Z")

</div>

**Klavye’den girilen sayının bölenlerini bulan bir programı nasıl yazabilirsiniz?**

**Cevap:**  
Aşağıdaki adımlarda, klavyeden girilen bir sayının pozitif bölenlerini bularak ekrana yazdıran bir programın mantığını ve örnek bir C kodunu detaylı şekilde inceleyeceğiz.

## Table of Contents

1. [Bölen Kavramı Nedir?](#bolen-kavrami)
2. [Temel Terimler](#temel-terimler)
3. [Adım Adım Çözüm Yöntemi](#adim-adim-cozum)
4. [Örnek Kod (C Programlama Dili)](#ornek-kod)
5. [Örnek Çalışma](#ornek-calisma)
6. [Özet Tablo](#ozet-tablo)
7. [Sonuç ve Özet](#sonuc-ve-ozet)

* * *

## 1. Bölen Kavramı Nedir?

Bir **sayının böleni** , söz konusu sayıyı kalansız (mod 0 olacak şekilde) bölebilen tam sayı değerini ifade eder. Örneğin, 12 sayısı için bölenler 1, 2, 3, 4, 6 ve 12’dir. Burada 12’nin 2 ile veya 3 ile bölünmesi sonucunda kalan 0 olmuştur.

* * *

## 2. Temel Terimler

- **Bölen (Divisor)**: Bir sayıyı kalansız bölen tam sayılara bölen denir.
- **Modulus (mod) İşlemi**: Bir sayının başka bir sayıya bölümünden kalanı verir. C programlama dilinde “%” karakteri ile gösterilir.
- **Klavyeden Girdi (Input)**: Kullanıcıdan alınan veri. Örneğimizde bu, bir tam sayı olacak.
- **Döngü (Loop)**: Belirli bir koşul sağlandıkça tekrarlı olarak çalışan yapı. Bu örnekte, 1’den girilen sayıya kadar ilerleyerek bölenleri kontrol edeceğiz.

* * *

## 3. Adım Adım Çözüm Yöntemi

1. **Kullanıcıdan Sayı Alın**

2. **Döngü Kurma**

3. **Bölme Kontrolü (mod 0)**

4. **Ekrana Yazdırma**

5. **Sonlandırma**

* * *

## 4. Örnek Kod (C Programlama Dili)

Aşağıdaki C programı, klavyeden girilen bir tamsayının tüm pozitif bölenlerini bularak ekrana yazdırmaktadır:

```c
#include <stdio.h>

int main() {
    int sayi, i;

    // 1. Adım: Kullanıcıdan sayıyı alma
    printf("Bir tamsayi giriniz: ");
    scanf("%d", &sayi);

    // 2. Adım: Döngü kurma ve kontrol
    printf("%d sayisinin bolenleri: ", sayi);
    for(i = 1; i <= sayi; i++) {
        // 3. Adım: Kalansız bölündüğünü kontrol etme
        if(sayi % i == 0) {
            // 4. Adım: Ekrana yazdırma
            printf("%d ", i);
        }
    }

    printf("\n");
    return 0;
}

```

### Kod Analizi

- `printf("Bir tamsayi giriniz: ");` satırı kullanıcıdan bir tamsayı istemektedir.
- `scanf("%d", &sayi);` ile kullanıcı girdiği tamsayıyı `sayi` değişkenine kaydeder.
- `for(i = 1; i <= sayi; i++)` döngüsü 1’den başlar ve `sayi` değerine eşit olana kadar artar.
- `if(sayi % i == 0)` ifadesi, `sayi`nın `i`ye kalansız bölünüp bölünmediğini kontrol eder.
- Eğer bölünüyorsa, bu `i` değeri bölen olarak kabul edileceğinden ekrana yazdırılır.

* * *

## 5. Örnek Çalışma

Örnek olarak, kullanıcı **12** değerini girdiğinde:

1. Döngü 1’den 12’ye kadar ilerler.
2. `12 % 1 == 0` → Ekrana 1 yazdırılır.
3. `12 % 2 == 0` → Ekrana 2 yazdırılır.
4. `12 % 3 == 0` → Ekrana 3 yazdırılır.
5. `12 % 4 == 0` → Ekrana 4 yazdırılır.
6. `12 % 5 == 0` → Kalan 2 olduğu için 5 yazdırılmaz.
7. `12 % 6 == 0` → Ekrana 6 yazdırılır.
8. `12 % 7, 8, 9, 10, 11` farklı kaldıklar verdiğinden yazdırılmaz.
9. `12 % 12 == 0` → Ekrana 12 yazdırılır.

Sonuç olarak döngü bittikten sonra ekranda **“1 2 3 4 6 12”** listelenir.

* * *

## 6. Özet Tablo

Aşağıdaki tablo, bir sayının bölenlerini bulan işlemi özetler:

| **Adım** | **İşlem** | **Açıklama** |
| --- | --- | --- |
| 1. Kullanıcıdan girdi | Bir tamsayı girilir (örneğin 12). | `scanf("%d", &sayi);` |
| 2. Döngü oluşturma | 1’den `sayi`ya kadar ilerleyen döngü kurulması. | `for (i = 1; i <= sayi; i++)` |
| 3. Kalansız bölme kontrolü | `sayi % i == 0` ifadesiyle kontrol. | `if (sayi % i == 0)` bölen olduğunu gösterir. |
| 4. Ekrana yazdırma | Kalansız bölme durumunda ilgili `i` değeri ekrana yazdırılır. | `printf("%d ", i);` |
| 5. Sonuç | Tüm bölenler sırayla görüntülenir. | Sondurum: “1 2 3 4 6 12” |

* * *

## 7. Sonuç ve Özet

- **Klavye’den girilen bir sayının bölenlerini** bulmak için yapmamız gereken temel işlem, 1’den sayıya kadar giden bir döngü içinde kalansız bölme kontrolü yapmaktır.
- Program, basit bir **mod (kalan) operasyonu** ile çalışır.
- Bu mantık tüm programlama dillerinde benzerdir; sadece girilen değeri 1’den sayıya kadar bölersiniz ve kalan 0 ise o değer bölen olarak kabul edilir.
- **Örnek olarak** C programlama dili kullanılsa da, benzeri mantığı Python, Java veya diğer dillerde de uygulayabilirsiniz.

Bu yöntemle, girilen herhangi bir tamsayının **tüm pozitif bölenlerini** kolaylıkla ekrana basan bir program geliştirebiliriz.

@Eda_Dayar
