Giriş GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI printf Fonksiyonu scanf Fonksiyonu Verilerin kaybolmaması için hafızada değişkenler içine yerleştirilmeleri gerekir. Bu veriler iki şekilde yerleştirilebilir. Değişkene değer atanması ile, Bir giriş aygıtı (input device) kullanımı ile değişken içerisine değer girilebilir. Hesaplanan sonuçlar ve hafızada tutulan değerler kullanıcıya gösterilir. ENF-102 Jeoloji 2/26 printf Fonksiyonu Yaygın olarak kullanılan veri giriş ve çıkış fonksiyonları, C standart giriş-çıkış kütüphanesinde bulunur. Bu fonksiyonlar stdio.h başlık dosyası ile derleyiciye bildirilir. Değişkenlerin değerlerini, hesaplanan sonuçları ya da mesajları ekranda göstermek için kullanılır. Genel Kullanımı (syntax): printf (çıktı metin formatı,değişken listesi); veya printf (çıktı metin formatı); ENF-102 Jeoloji 3/26 ENF-102 Jeoloji 4/26 ÖRNEK printf % karakterlerinin dışında tüm karakterleri ekrana yazar. % karakterini gördüğünde yanındaki karakteri yazdırılacak değişkenin format karakteri olarak ele alır. Hesaplanan yaşınız 17 dir ENF-102 Jeoloji 5/26 ENF-102 Jeoloji 6/26 ENF102 Jeoloji 1
Yertutucular Önek Karakteri Bütün yertutucular % işareti ile başlarlar. Genel kullanım şekilleri aşağıdaki gibidir: % [önek] [genişlik] [.duyarlılık] <format karakteri> ENF-102 Jeoloji 7/26 ENF-102 Jeoloji 8/26. Yaygın kullanılan format karakterleri Genişlik, sayının ne kadarlık bir karakter alana yazdırılacağını belirler. Double ve float değişkenlerinde genişlik, duyarlılık şeklinde virgülden sonra kaç basamak uzunluğuna yazılacağı da belirtilir. ENF-102 Jeoloji 9/26 ENF-102 Jeoloji 10/26 Escape Karakteri Escape Serileri Çıktı metin biçimi içerisinde \ karakterine escape karakteri denilir. Bu karakterden sonra gelen karakter ise escape serisini (sequence) ifade eder. Örneğin printf fonksiyonundaki \n, yazdırılma sırasının ona geldiğinde, yeni bir satıra geçilmesi gerektiğini ifade eder. ENF-102 Jeoloji 11/26 ENF-102 Jeoloji 12/26 ENF102 Jeoloji 2
Örnek Program Örnek Program - Çıktı: /*Bu program çıktı örnekleri için yapılmıştır*/ void main () double x = 3.176; float y = 3.13; int z = 10; char m = a ; printf("\n\n\n"); printf("1. satır x = %f,y = %f \n",x,y); printf("2. satır x = %e,y = %E\n",x,y); printf("3. satır x = %8.2f,y = %8.2f\n",x,y); printf("4. satır x = %+.2f,y = %+0.3f\n,x,y); printf("5. satır z = %d,m = %d,m=%c\n",z,m,m) ; printf("6. satır z = %x,z = %X, z = %o\n", z,z,z) ; printf("7. satır z = %010d\t z = %d\t z =%10d\t z = %-10d",z,z,z); } ENF-102 Jeoloji 13/26 ENF-102 Jeoloji 14/26 scanf Fonksiyonu Örnek Değişkenlerin içerisine klavyeden değer atamak için kullanılır. Genel kullanım formatı aşağıdaki gibidir. scanf(girdi metin formatı,değişken listesi); ENF-102 Jeoloji 15/26 ENF-102 Jeoloji 16/26 Girdi metin formatının (format string) içerisine yertutucular (placeholder) dışında metinler verilmemelidir. scanf fonksiyonunda Dışarıdan değer girilecek bütün değişkenlerin başına&(ampersand) işareti konulur. Bu işaret adres operatörüdür. Her bellek hücresinin bir adresi vardır. & işareti önüne yazılan değişkenin bellek adresini üretir. Dışarıdan girilen değerin, adresi verilen bellek hücresine aktarılmasını sağlar. Eğer & işareti yazılmazsa, derleyici hata mesajı vermez fakat girilen değerler uygun bellek hücresine yazılmaz, bazı durumlarda çalışma zamanı hataları (run time error) oluşabilir. ENF-102 Jeoloji 17/26 ENF-102 Jeoloji 18/26 ENF102 Jeoloji 3
scanf Değerin sonlandırılması için enter tuşuna basılması gerekir. Enter tuşuna basılana kadar girilen değer üzerinde değişiklik işlemleri yapılabilir. Enter tuşuna basıldığı anda artık üzerinde değişiklik yapılamaz. Program içerisinde sadece scanf kullanıldığında, kullanıcı boş bir ekran ile karşılaşır. scanf içerisine kullanıcıya girmesi gereken değerler hakkında birtakım ekran mesajları(prompting message) yazamadığımız için bir printf satırı ile kullanılması tavsiye edilir. Yanyana verilmiş olan değişkenlerin içerisine araya boşluk,tab işaretleri konularak da giriş yapılabilir. ENF-102 Jeoloji 19/26 ENF-102 Jeoloji 20/26 ÖRNEK: Tek başına ÖRNEK : Taban ve yükseklik değerleri tamsayı olarak verilen üçgenin alanını hesaplayınız scanf( %d,&m); diye bir komut verildiğinde program çalışma esnasında kullanıcı boş ekranda değer girmek zorunda kalır. Aşağıdaki gibi verilirse bir ekran mesajının sonuna girdi yapılabilir. printf ( Yaşınız = ); scanf( %d",&m); Çalıştığında ekranda Yaşınız = mesajı, görünür ve kullanıcı hangi değeri girmesi gerektiğini bilir. /*Taban ve Yükseklik değerine göre alan hesabı yapan program */ void main() int taban, yukseklik; float alan; } printf("üçgenin tabanı = "); scanf("%d",&taban); printf("üçgenin yüksekliği = "); scanf("%d",&yukseklik); alan=(taban*yukseklik)/2.0; //Ucgenin alanini hesaplar printf("\n\nüçgenin alanı %.2f dir\n",alan); ENF-102 Jeoloji 21/26 ENF-102 Jeoloji 22/26 ÇIKTI: Örnek Program /*Yariçap degerine göre alan hesabi yapan program */ #define dairealan(r)3.14*r*r float alan, yaricap; // main dışında tanımlama-genel tanımlama void main() printf("yaricapi giriniz="); scanf("%f",&yaricap); alan=3.14*yaricap*yaricap; printf("\n\ndairenin alani %.2f dir\n",alan); } ENF-102 Jeoloji 23/26 ENF-102 Jeoloji 24/26 ENF102 Jeoloji 4
Çıktı Kaynakça: Programlamayı C ile öğreniyorum (2. Baskı), M. Yorulmaz, S. Yorulmaz, 2005, Ankara Algoritma geliştirme ve programlamaya giriş (4. Baskı).Vatansever, F., 2004, Seçkin Yayınevi: Ankara. ENF-102 Jeoloji 25/26 ENF-102 Jeoloji 26/26 ENF102 Jeoloji 5