Standart C Programlama Dili


7.P. Problemler

1. stdio.h dosyasında getc() ve putc()’nin tanımlarına bakıp ne olduğunu açıklamaya çalışın.

2. Kısım 7.7’deki örnek programa degistirme adında yeni bir seçenek ekleyin. Seçildiğinde, öğrenci numarası okunur ve öğrencinin şu anki bilgileri görüntülenir. Kullanıcı, isterse, anahtar dışındaki bilgileri değiştirebilir ve yeni bilgiler eski bilgilerin yerini dosyada alır. Varlık testleri ve uygun hata mesajları bulunmalıdır.

3. Sözdizimsel açıdan doğru olan bir C programından bütün açıklama ve görünmeyen gereksiz karakterleri çıkaran bir program yazın.

4. Komut satırında argüman olarak verilen dosyaları birleştirip stdout’a yazan (ve unix komutu cat’e benzeyen) bir program yazın.

5. Büyük bir dosyayı birkaç küçük dosyaya ayıran bir program yazın. İlk argüman dosya adını; ikincisi (eğer verilmezse 1000 varsayılacak) parça başına satır sayısını gösterir. Parçaların dosya isimleri parca.1, parca.2 vs. olacaktır.

6. Argüman olarak verilen iki dosyayı karşılaştırıp farklı olan baytları sekizli gösterimde görüntüleyecek (ve unix komutu cmp’e benzeyen) bir program yazın.

7. Bir satır editörü yazın. Çalışma dosyasının adı komut satırı argümanı olarak verilecektir. Program aşağıdaki komutların herhangi birini girdi olarak kabul edebilecektir:

E numara

Bu komuttan sonra, standart girdiden bir satır okunup numara’ıncı satırdan önce yerleştirilir.

S numara

Numara’ıncı satır silinir.

G numara

Numara’ıncı satır görüntülenir.

C

Program sona erer.

8. Bir metin dosyasındaki satırları tersten basacak (ve unix komutu tac’a benzeyen) bir program yazın; yani son satır ilk olarak basılacak vs. Dosya boyuna herhangi bir sınırlama getirmeyin.

9. Ekranı temizleyen bir fonksiyon yazın.

10. Sözdizimsel açıdan doğru ve tam olan bir C programını içeren bir dosyayı alıp, aynı programı daha iyi bir biçimde başka bir dosyaya yazan bir program hazırlayın. Daha iyi bir biçim derken, şunu anlatmak istiyoruz: Bütün fonksiyon başlıkları aynı sütunda başlar ve başka deyimlerin parçaları olan blokların sol ve sağ çengelli parantezlerin yeri Bölüm 2’de önerilen şekildedir.

11. Metin okuyup aşağıdaki şekilde biçimlendirilmiş olarak bir dosyaya koyan bir program yazın: Solda 7 karakterlik boşluk bulunur, doküman her biri 55 satır olan sayfalardan oluşur, her satır en fazla 65 karakterdir, her sayfanın son satırında sayfa numarası bulunur ve noktadan sonra gelen ilk harf büyüğe dönüştürülür. Program, tek bir yeni satır ('\n') karakterini boşluğa çevirecek; arka arkaya iki tane yeni satır karakteri varsa, bunlar paragraf sonu olarak değerlendirilecek ve aynen bırakılacaktır. Gereksinimlerinize göre programı geliştirin. (Bazı biçimleme komutları ekleyin: Örneğin, özel bir karakterle başlayan satırlar emir olarak değerlendirilebilir.)

12. Bu bölümde anlatıldığı şekilde, geleneksel anlamda girdi ve çıktı yapmayan programlar olabilir mi? Gerçek hayattan örnekler vermeye çalışın.