Amiga Dünyası sayı 7, sayfa 49

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 49

KUTU 1

1> Aşağıdaki programı yazıp Ram Disk'e kaydedin.

/* K&R'ın kitabından alınarak Amiga'ya uyarlanmıştır. */

#defineEOF-l #defıne MAXLINE 1000

int max; /*0 ana kadarki en büyük uzunluk*/ char line[MAXLINE]; /*0 anki satır*/ char save[MAXLINE]; /*0 ana kadar en uzun satır*/

main()

{ int len; /*0 anki satır uzunluğu*/ extern int max; extern char save[];

max=0; while ((len=getline())>0) if (len>max) { max=len; copy();

} if(max>0) printf("%s",save);

getlineO

{ intc; int i; extem char line[];

for(i=0;i<lim-l&&(c=getchar())!=EOF&&c!='\n';++i) line[i]=c; if (c==^n') { line[i]=c; ++i;

} line[i]=N0'; return(i);

}

copy()

{ int i; extern char line[],save[];

i=0; while((save[i]=line[i])!='\0') ++i;

2> Şimdi programı "cc ram:program-ismi.c" ile compile edin. 3> Şimdi de "ln ram:program-ismi.o -lc" ile link edin. 4> Programı çalıştırmak için ram:program-ismi yazın. Bu durumda program sizin klavyeden girdiğiniz karakterler üzerinde işlem yapacaktır. Bu moddan çıkmak için Ctrl-\ (Control ve ters bölü tuşlarına birlikte) tuşlarına basmalısınız. Eğer programa bir text dosyasından redirection (Tk. yeniden yönlendirme) verirseniz program text dosyasının bitimiyle beraber size yaptığı işlemlerin sonuçlarını yazacaktır.

KUTU 2

1> Girişindeki karakterleri çıkışına kopyalarken, rastladığı birden fazla boşluktan oluşan topluluğu, tek bir boşluk ile değiştiren bir program yazın.

2> Girişindeki kelimelerin uzunluklarını sayarak daha sonra o uzunlukta kaç kelime olduğunu yazan bir program yazın. Örneğin; 3 tane iki harfli, 8 tane 3 harfli vb.) Programın çıktısı aşağıdaki gibi olmalıdır:

Harf Sayısı Kelime Adedi 2 5 3 8

3> Girişindeki dosyayı, küçük harflerden oluşan bir dosyaya çeviren bir program yazın. Program, küçült(c) isimli bir fonksiyon kullansın, ki bu fonksiyon eğer c bir harfse, onun küçük harf kodunu programa yollasın; harf değilse (rakam, yeni satır vb.), c karakteri aynen programa geri yollansın.

4> Girişindeki dosyadaki boşluklar ve tabları silen bir program yazın. Eğer dosyada tamamıyla boş bir satır varsa, o satır da silinsin.

5> Daha önceden yazdığımız en uzun satır programının main fonksiyonunu, satırların ve dosyanın uzunluğunda bir sınır olmayacak şekilde yeniden yazın.

6> Girişindeki dosyadaki tüm tab (\t) karakterlerini belirli uzunluktaki boşluklarla (örneğin her tab için 3 boşluk) değiştiren bir program yazın.

7> Bir C programındaki tüm comment (Tk. Açıklama) yok eden bir program yazın.

8> Bir C programındaki parantez, süslü parantez ve köşeli parantez eksikliklerinden doğan hataları bulan bir program yazın. Bu arada eğer program çift tırnak ("), tek tırnak (') ve comment işaretlerini (/*) de kontrol ederse iyi olur. (Bu program tam anlamıyla yapıldığında size biraz zor gelebilir.)

Başarılar ........

Klavyeyle gezinmek için ← ve → tuşları.