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ığı
- Girdi (Input): Klavyeden bir sayı alınacak.
- İşlem: Girilen sayının bölünebildiği tüm bölenler bulunacak.
- Çı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:
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ı
- Fonksiyon:
bolenleri_bul(sayi)fonksiyonu, girilensayidöngü ile kontrol eder ve bölenleri bir listeye ekler.
- Girdi:
- Kullanıcı,
input()fonksiyonu ile klavye üzerinden bir sayı girer. - Sayının pozitif olup olmadığını kontrol eder.
- Kullanıcı,
- Çı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
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
- Bölen Kavramı Nedir?
- Temel Terimler
- Adım Adım Çözüm Yöntemi
- Örnek Kod (C Programlama Dili)
- Örnek Çalışma
- Özet Tablo
- Sonuç ve Özet
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
-
Kullanıcıdan Sayı Alın
- Kullanıcıya “Bir sayı giriniz:” şeklinde bir mesaj gösterilir.
- Girilen sayı bir değişkende saklanır, örn.
int sayi; scanf("%d", &sayi);
-
Döngü Kurma
- 1’den girilen
sayideğerine kadar ilerleyen bir döngü oluşturulur. - Döngü sayacı genellikle
iolarak seçilir ve1den başlayıpsayiya kadar gider.
- 1’den girilen
-
Bölme Kontrolü (mod 0)
- Döngü içinde her adımda
sayi % iişleminin sonucu kontrol edilir. - Eğer sonuç
0ise bu,ideğerininsayiyı kalansız bölen bir tam sayı olduğunu gösterir.
- Döngü içinde her adımda
-
Ekrana Yazdırma
- Bölme işleminin kalansız olduğunu tespit ettiğimiz her
ideğeri ekrana yazdırılır.
- Bölme işleminin kalansız olduğunu tespit ettiğimiz her
-
Sonlandırma
- Döngü bittiğinde girilen sayının tüm pozitif bölenleri ekrana listelenmiş olur.
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:
#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ısayideğişkenine kaydeder.for(i = 1; i <= sayi; i++)döngüsü 1’den başlar vesayideğerine eşit olana kadar artar.if(sayi % i == 0)ifadesi,sayinıniye kalansız bölünüp bölünmediğini kontrol eder.- Eğer bölünüyorsa, bu
ideğ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:
- Döngü 1’den 12’ye kadar ilerler.
12 % 1 == 0→ Ekrana 1 yazdırılır.12 % 2 == 0→ Ekrana 2 yazdırılır.12 % 3 == 0→ Ekrana 3 yazdırılır.12 % 4 == 0→ Ekrana 4 yazdırılır.12 % 5 == 0→ Kalan 2 olduğu için 5 yazdırılmaz.12 % 6 == 0→ Ekrana 6 yazdırılır.12 % 7, 8, 9, 10, 11farklı kaldıklar verdiğinden yazdırılmaz.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 sayiya 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.
