Programlama Temelleri

12 - Alıştırmalar

Emre Can Yılmaz

Ondokuz Mayıs Üniversitesi

2024

1. Öğrenci Not Ortalaması Hesaplama ve Dosyaya Yazma:

Kullanıcıdan bir sınıftaki öğrenci sayısını, her öğrencinin adını, soyadını, vize ve final notlarını girmesini isteyin. Öğrenci bilgilerini bir struct dizisinde saklayın. Daha sonra, her öğrencinin not ortalamasını hesaplayarak “ogrenci_bilgileri.txt” adlı bir dosyaya aşağıdaki formatta yazdırın:

Ad Soyad: [Ad] [Soyad], Numara: [Numara], Not Ortalaması: [Ortalama]
  • Ogrenci struct’ı içinde öğrencinin adı, soyadı, numarası, vize ve final notları bulunmalıdır.
  • Dosyaya yazarken, her öğrencinin bilgileri yeni bir satırda olmalıdır.
  • Not ortalamasını hesaplamak için, vize %40, final %60 etkili olmalıdır.

2. Sayıları Ters Çevirme:

Kullanıcıdan n tane pozitif tamsayı girmesini isteyin. Ardından girilen bu sayıları ters sırada ekrana yazdıran bir program yazın.

  • Kullanıcı önce kaç tane sayı gireceğini belirtmeli (n).
  • Girilen sayıları saklamak için bir dizi kullanın.
  • Sayıları tersten yazdırmak için bir for döngüsü kullanın.

Örnek Giriş:

Kaç sayı gireceksiniz? 3
1. sayıyı girin: 10
2. sayıyı girin: 5
3. sayıyı girin: 25

Beklenen Çıktı:

Girilen sayıların tersi: 25 5 10

3. En Sık Geçen Karakter:

Kullanıcıdan bir cümle girmesini isteyin (maksimum 100 karakter). Bu cümle içinde en sık geçen karakteri ve kaç kere tekrarlandığını bulan bir program yazın. Boşluk karakterini saymayın.

Örnek Giriş:

Bu bir test cümlesidir.

Beklenen Çıktı:

En sık geçen karakter: e
Tekrar sayısı: 4

4. İkinci En Büyük Sayı:

Kullanıcıdan kaç adet sayı gireceğini belirtmesini isteyin. Ardından kullanıcının girdiği tam sayıları bir dizide saklayın ve bu dizideki ikinci en büyük sayıyı bulan bir fonksiyon yazın. main fonksiyonu içinde, yazmış olduğunuz bu fonksiyonu kullanarak sonucu ekrana yazdırın.

Örnek Giriş:

Kaç sayı gireceksiniz? 5
1. sayıyı girin: 15
2. sayıyı girin: 28
3. sayıyı girin: 9
4. sayıyı girin: 35
5. sayıyı girin: 12

Beklenen Çıktı:

İkinci en büyük sayı: 28

5. Sayısal Üçgen Çizimi:

Kullanıcıdan bir sayı (n) girmesini isteyin ve aşağıdaki örnekte olduğu gibi, n satırdan oluşan bir sayısal üçgen çizen bir program yazın.

Örnek Giriş (n = 4 için):

1
2 3
4 5 6
7 8 9 10

İpucu: İç içe for döngüleri kullanabilirsiniz.

6. Metin Dosyasındaki Kelime Sayısını Bulma:

Bir metin dosyasının içindeki toplam kelime sayısını bulan bir program yazın.

  • Program, dosya adını kullanıcıdan almalı.
  • Dosya başarıyla açılmazsa, hata mesajı verip sonlanmalı.
  • Kelime sayısını bulmak için, boşluk karakterlerini kullanarak kelimeleri ayırabilirsiniz.
  • Dosyanın her satırını fgets() ile okuyup, strtok() fonksiyonu ile kelimelere ayırabilirsiniz. (İpucu: strtok() fonksiyonunu nasıl kullanacağınızı internetten araştırın.)
  • Toplam kelime sayısını ekrana yazdırın.

Örnek Dosya İçeriği (“metin.txt”):

Bu bir örnek metin dosyasıdır.
Programlama öğrenmek çok keyifli.
C dili ile dosya işlemleri yapmak mümkün.

Beklenen Çıktı:

Toplam kelime sayısı: 16

7. Mükemmel Sayı Kontrolü:

Kullanıcıdan bir pozitif tam sayı girmesini isteyin. Girilen sayının “mükemmel sayı” olup olmadığını kontrol eden bir fonksiyon yazın. Fonksiyon, sayı mükemmel sayı ise 1, değilse 0 döndürsün. main fonksiyonu içerisinde bu fonksiyonu kullanarak, kullanıcının girdiği sayının mükemmel sayı olup olmadığını ekrana yazdırın.

Hatırlatma: Bir sayının kendisi hariç tüm pozitif bölenlerinin toplamı o sayıya eşitse, bu sayıya “mükemmel sayı” denir. (Örnek: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14)

8. Sıralı Dizi Kontrolü:

Kullanıcıdan önce kaç adet sayı gireceğini belirtmesini isteyin (n). Ardından n adet tam sayıyı bir dizide saklayın. Daha sonra, bu dizinin elemanlarının küçükten büyüğe doğru sıralı olup olmadığını kontrol eden bir fonksiyon yazın. Fonksiyon, dizi sıralı ise 1, değilse 0 döndürsün.