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.