Unsigned Char Veri Tipi

Benzer belgeler
Karar yapıları, (if else, switch)

Döngü yapıları, (for, do while, while),

Karar yapıları, (if else,

Unsigned Char Veri Tipi

Diziler (Arrays) Çok Boyutlu Diziler

Unsigned Char Veri Tipi

Genel Programlama II

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

ALGORİTMA VE PROGRAMLAMA I

C Programlama Dilininin Basit Yapıları

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Algoritmanın Hazırlanması

Akış Kontrol Mekanizmaları

HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Algoritma ve Programlama: Karar Yapıları ve Döngüler

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Değişken nedir? Tanımı nasıl yapılır?

Genel Programlama II

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

C Dersleri Bölüm 3 : Program akışı

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

PROGRAMLAMA DİLLERİ I

Algoritmalar ve Programlama. Algoritma

C#(Sharp) Programlama Dili

HSancak Nesne Tabanlı Programlama I Ders Notları

Bölüm 2 - C ile Programlamaya Giriş

C PROGRAMLAMA DİLİNE GİRİŞ

PROGRAMLAMAYA GİRİŞ DERS 2

Genel Programlama II

Program AkıĢ Kontrol Yapıları

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

Dr. Fatih AY Tel: fatihay@fatihay.net

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

Veri Yapıları ve Algoritmalar

Genel Programlama II

ALGORİTMA VE PROGRAMLAMA I

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Program Akış Kontrol Yapıları

Python Programlama Dili

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Diziler (Arrays) Çok Boyutlu Diziler

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Java da Program Denetimi ve Operatörler

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

HSancak Nesne Tabanlı Programlama I Ders Notları

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

C dilinde if-else yapısı

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

C Programlama Dersleri

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Genel Programlama I Ders 4

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

ÖRNEK 1: Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır:

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

GÖRSEL PROGRALAMA HAFTA 3 ALGORİTMA VE AKIŞ DİYAGRAMLARI

İnternet Programcılığı Dersi 2.Dönem Ders Notu

Nesne Tabanlı Programlama

C Konsol Giriş Çıkış Fonksiyonları

Java da İşleçler, Ders #3 (4 Kasım 2009)

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Özyineleme (Recursion)

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

Lab Notları 4. for ( ilklenme yeri bir kez çalışır ; Kontrol yeri her döngüde bakılır ; Güncelleme yeri her döngüde )

2. Dereceden Denklemin Köklerini Bulan Program

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

Internet Programming II

ALGORİTMA VE PROGRAMLAMA I

BİL-142 Bilgisayar Programlama II

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

BÖLÜM 3: AKIŞ DİYAGRAMLARI

BİLGİSAYAR PROGRAMLAMA MATLAB

Transkript:

Unsigned Char Veri Tipi RAM bellekte 8 bit yani 1 byte yer kaplar.eğer 8 bitin hepsi sıfır ise onlu sayı sistemindeki karşılığı sıfır, hepsi bir ise onlu sayı sistemindeki karşılığı 255 tir. Yani bu veri tipi 0:255 arasında değerler alır. 00000000 >0 11111111 >255 Char kelimesinin önündeki unsigned kelimesi işaretsiz anlamına gelir. Bu da bu veri tipinin sadece pozitif (+) tamsayı barındırabileceği anlamına gelir. Eğer yazdığımız programda 0:255 arası küçük tamsayı değerler arasında çalışacaksak en mantıklı şey bu veri tipini kullanmaktır. Örneğin 0-100 arası öğrenci notları ile çalışacaksak short veya int veri tipi yerine bu veri tipi kullanılmalıdır çünkü int RAM bellekte 4 byte yer kaplarken char veri tipi 1 byte yer kaplar. Sonuçta daha az bellek isteyen ve kaynakları daha iyi kullanan bir program yazmış oluruz. Kaynak: C++/C Fahrettin Erdinç Neden Siber Güvenlik? Aslında bu metnin başlığı Neden Siber Güvenliğe Başlamalıyım? veya Güvenlik Bu Kadar Önemli mi? gibi sorular olabilirdi. Ama yazımız hem bütün bu konuları kapsasın

hem de işin biraz magazinsel boyutundan bahsedeceğinden bu başlık bizim için yeterli. Burada bu işin sadece parasal, ülkesel ve küresel boyutundan bahsedeceğiz. Önce parasal boyuta değinelim. Kendini yetiştirmiş bir beyaz şapkalı hacker* şu anda ülkemizde de dahil bir çok kurum kuruluşun güvenlik biriminde(örneğin bankalar,holdingler vs..) çalıştığı gibi google, facebook gibi küresel ölçekli firmaların sitelerinde yaptıkları pentestlerle** buldukları açıklığın boyutuna göre milyon dolarlara kadar çıkabilen paralar kazanabilmektedir. Ülkesel bazda baktığımızda ileride olacak veya olabilecek savaşların senaryoları; tek kurşun atılmadan ülkelerin altyapısal donanımlarını, askeri silahlarını(örneğin uçakları, denizaltıları vs..), iletişim ağlarını çökertmektir. Bunun 2007 de Rusya-Estonya siber savaşı*** ile ilk örneğini bütün dünya görmüş oldu. Estonya nın bütün internet altyapısını felç eden DDos saldırıları ile ülkede bankacılık işlemleri, devlete ait internet siteleri, haber portalları gibi başlıca internet hizmetleri kullanılamaz hale gelmiştir. Saldırıların çoğunun Rusya dan geldiğinin ispatlanması üzerine ülkedeki bütün internet hatları kapatılmış buna rağmen saldırılar birkaç

hafta daha devam etmiştir. Şu an itibari ile Rusya da ve Amerika da bir siber ordu, Çin in bilinen ismiyle Mavi ordusu ve Avrupa Birliğinin bu acil durumlar için bir siber güvenlik ordusu geliştirdiği bilinmektedir. Ülkemizin de böyle bir birime ihtiyacı vardır. Son olarak küresel bazda baktığımızda bir Nükleer Santrale yapılan siber saldırı sonucu doğaya verilen zararın düzeltilememesi, nükleer başlıklı bir bombanın kodlarının hackerlar tarafından ele geçirilip teröristlere satılması, kişisel mahremiyete dayalı bilgilerin çalınıp satılması, ülkelerin sırlarının ifşa edilmesi gibi uzadıkça uzayan bir liste mevcuttur. Bütün bu tehlikeler karşısında kendini yetiştirebilmiş güvenlikçiler her zaman ve şartta gerekli yerlerde lazım olacaktır. Kaynaklar: * http://www.beyazsapkalihacker.com/2014/03/test-yayn.html ** http://blog.lifeoverip.net/2009/10/06/10-soruda-pentestpenetra syon-testleri/ *** http://securitist.blogspot.com.tr/2014/07/siber-savas-tarihind en-baz-olaylar.html

Yazar: Ömer Faruk SÖNMEZ Döngü yapıları, (for, do while, while), Döngü Kavramı Programlama konusunda -hangi dil olursa olsun- en kritik yapılardan biri döngülerdir. Döngüler, bir işi, belirlediğiniz sayıda yapan kod blokları olarak düşünülebilir. Ekrana 10 kere Merhaba Dünya yazan bir programda, Merhaba Dünya yazdıran kodu aslında tek bir defa yazarsınız, döngü burada devreye girip, sizin için bu kodu istediğiniz sayıda tekrarlar. Döngüleri bu kadar kritik yapan unsur; iyi yazılıp, optimize edilmediği takdirde, bilgisayarınızın işlem gücünü gereksiz yere tüketmesi ve harcanan zamanı arttırmasıdır. Benzer şekilde, iyi yazılmış bir döngü, programınızı hızlı çalıştıracaktır. Bütün döngüler temelde iki aşamayla özetlenebilir. Aşamalardan biri, döngünün devam edip etmeyeceğine karar verilen mantıksal sorgu kısmıdır. Örneğin, ekrana 10 kere Merhaba Dünya yazdıracaksanız, kaçıncı seferde olduğunu, koşul kısmında kontrol edersiniz. Diğer aşama, döngünün ne yapacağını yazdığınız kısımdır. Yani ekrana Merhaba Dünya yazılması döngünün yapacağı iştir. Döngünün devam edip etmeyeceğine karar verilen aşamada, hatalı bir mantık sınaması koyarsanız, ya programınız hiç çalışmaz ya

da sonsuza kadar çalışabilir. C programlama diline ait bazı döngüler; while, do while, for yapılarıdır. Bunlar dışında, goto döngü elemanı olmasına rağmen, kullanılması pek tavsiye edilmemektedir. while Döngüsü while döngüsü, en temel döngü tipimizdir. Bir kontrol ifadesiyle döngünün devam edilip edilmeyeceği kontrol edilirken, scope içinde ( yani ayraç işaretleri arasında ) kalan bütün alan işleme sokulur. İşleme sokulan kod kısmı döngü yapılacak adet kadar tekrar eder. while döngüsünün genel yapısını ve akış şemasını aşağıda görebilirsiniz: while Yapısı [crayon-585e45875379e699215661/] while Akış Diyagramı

Yukarda 10 kere ekrana Merhaba Dünya yazan programdan bahsettik. Gelin bir anlaşma yapalım ve döngülerle alakalı bütün ilk örneklerimiz bu programın nasıl yazılacağını göstersin. while döngüsü kullanarak, ekrana 10 kere Merhaba Dünya yazan program aşağıdaki gibidir: [crayon-585e4587537b1331811503/] Yukardaki program aslında son derece basit. i değişkenine ilk değer olarak 0 atıyoruz. Daha sonra, while döngüsüne başlıyoruz. İfadenin doğruluğu ( yani i nin 10 dan küçük olup olmadığı) kontrol ediliyor. Eğer doğruysa, döngü içindeki kodların çalışması başlatılıyor. Elbette kodların başlamasından bir önceki adımda, i değişkeni arttırılıyor. Bu yapı toplamda 10 kere tekrar ediyor ve en sonunda i nin değeri 10 a eşit olunca, döngü sonlandırılıyor. Yandaki işlem basit bir toplama ifadesidir. Yanda gördüğümüz ifade de, n değerini kullanıcıdan alacağımızı düşünerek bir program yazalım. Bu program, alacağı n değerine göre, kendisine kadar olan sayıların karelerinin toplamını gösterecektir. Bu programı yazarsak: [crayon-585e4587537bc248418418/] do while Döngüsü Göreceğimiz ikinci döngü çeşidi, do while döngüsüdür. Yaptığı iş, while ile hemen hemen aynıdır; verilen işi, döngü koşulu bozulana kadar sürdürür. Ancak while a göre önemli bir farkı vardır. while döngülerinde, döngü içersindeki işlem yapılmadan önce, sunulan koşul kontrol edilir. Şayet koşul sağlanmıyorsa, o

while döngüsünün hiç çalışmama ihtimali de bulunmaktadır. do while döngülerindeyse, durum böyle değildir. İlk çalışmada koşul kontrolü yapılmaz. Dolayısıyla, her ne şartta olursa olsun, döngünüz -en azından bir kere- çalışacaktır. Bazı durumlarda, döngü bloğu içersindeki kodların en azından bir kere çalışması gerektiğinden, do while yapısı kullanılır. do while ile ilgili genel yapıyı ve akış şemasını aşağıda bulabilirsiniz: do while Yapısı [crayon-585e4587537c9115545858/] do while Akış Diyagramı

Önce Merhaba Dünya örneğimizi yapalım: [crayon-585e4587537d1379997061/] Gördüğünüz gibi, bir önceki örneğimize oldukça benzer bir yapıda, yazıldı. Tek fark i nin değeri 0 da olsa, 1000 de olsa, en azından bir kez Merhaba Dünya nın yazılacak olmasıdır. Ancak while de kontrol önce yapıldığı için, hiçbir şey ekrana yazılmaz. Şimdi do while in kullanılmasının daha mantıklı olacağı bir program yapalım. Kullanıcıdan iki sayı alınsın. Bu iki sayı toplandıktan sonra, sonucu ekrana yazdırılsın. Yazdırma sonunda Devam etmek istiyor musunuz? sorusu sorulsun ve klavyeden E veya e karakterlerinden birisi girilirse, program devam etsin. Yok farklı birşey girilirse, program sonlandırılsın. Örnek programımızı aşağıda bulabilirsiniz: [crayon-585e4587537da180650631/] Program, kullanıcıdan iki sayı alıp, toplamını ekrana bastıktan sonra, yeniden işlem yapıp yapmak istemediğimizi sormaktadır. Bu programı while ile de yazabilirdik. Ancak while ile yazabilmek için, devam_mi değişkenine önceden E değerini atamamız gerekmekteydi. do while döngüsündeyse, bu zorunluluğa gerek kalmamıştır. Not: Yukardaki programda, farketmiş olduğunuz gibi karakter okumayı biraz farklı yaptık. Normalde, scanf( ) fonksiyonunu kullanmak yeterliyken, burada, işin içine bir de, do while girdi. Açıklayacak olursak, C de karakter okumaları, biraz sıkıntılıdır. Eğer giriş tampon belleğinde (Buffer) veri bulunuyorsa, bu direkt karaktere atanır. Bundan kurtulmak için

birçok yöntem olduğu gibi, uygulanabilecek bir yöntem de, yukarda yazılmış olan döngü şeklinde değer almaktır. Çünkü siz daha bir şey girmeden, ilk değer \n geleceğinden, döngünün ikinci çalışmasında, doğru değer atanacaktır. İlerki konularda, daha detaylı ele alacağımız bir problem olarak şimdilik önemsemeyelim. Sadece karakter okuyacağınız zaman problem çıkarsa, yukardaki gibi bir yöntem uygulanabileceğini bilmeniz -şimdilik- yeterli. for Döngüsü while ve do while dışında, üçüncü bir döngü tipi olarak, for yapısı bulunmaktadır. Diğer iki döngüden farklı olarak, for yapısı, yenilemeli-tekrarlamalı (İngilizce iterative) yapılarda kullanıma daha uygundur. Bunu performans anlamında söylemiyorum. Demek istediğim yazım tekniği olarak, for döngüsünün daha kullanışlı olmasıdır. Örneğin birbirini, sürekli tekrar eden işlemlerin yapıldığı Nümerik Analiz gibi alanlar, for döngüsü için iyi bir örnek olabilir. Ancak bu dediklerim sizi yanıltmasın; for döngüsü sadece soyut alanlarda çalışsın diye yaratılmış bir şey değildir. Programlarda, diğer iki döngüden çok daha fazla for kullanırsınız. Çünkü for sadece matematiksel hesaplama işlemlerinde değil, diziler ( array ) gibi konularda sürekli kullanılan bir yapıdır. Yazımı diğerlerine nazaran daha sade olduğundan, iteratif işlemlerde kullanılması elbette ki tesadüf olarak düşünülemez. Aşağıda for döngüsünün genel yazımını ve akış diyagramını göreceksiniz: for Yapısı [crayon-585e4587537e6641269747/] for Akış Diyagramı

İlk atacağımız adım; elbette ki ekrana 10 kere Merhaba Dünya yazdırmak olacak. ( Umarım bu Merhaba Dünya larla sizi fazla sıkıp, programlama işinden vazgeçirmemişimdir. Programlama mantığını kaptıktan sonra, dünyayı daha farklı görmeye başlayacak ve Merhaba Dünyalar ın sebebini daha iyi anlayacaksınız. Ve inanın bütün bu eziyete değer ) Buyrun programımız: [crayon-585e4587537f2431158933/] Gördüğünüz gibi çok daha sade ve açık gözükür bir kod oldu. for altında tek satır komut olduğundan, küme parantezleri koymamız opsiyoneldi ama ne yaptığınızı karıştırmamak için, her zaman koymanızı öneririm. for döngüleriyle ilgili bazı özel durumlarda vardır. for döngüsü içersine yazdığınız ilk değer atama, kontrol ve arttırma işlemlerini tanımlama esnasında yapmanız gerekmez. Aşağıda verilen kod, yukardakiyle tamamen aynı işi yapar. Farkı, i nin daha önce tanımlanmış olması ve arttırma/azaltma işinin döngü içinde yapılmasıdır.

[crayon-585e4587537fa931206331/] break Komutu Bazı durumlarda, döngüyü aniden sonlandırmak isteriz. Bunun için break komutunu kullanırız. Döngüyü aniden sonlandırmak veya döngüyü kırmak işlemini, zaten daha önce switch case lerde kullanmıştık. Bahsetmediğimiz şey, bunun her döngü içersinde kullanılabileceğiydi. Aşağıdaki programı inceleyelim: [crayon-585e458753805850348124/] Program için koyulmuş açıklamalar ( comment ) zaten neyin n olduğunu açıklıyor. Kısaca bir şeyler eklemek gerekirse, bitişinin nerede olacağını bilmediğimiz bir döngüyü ancak, break komutuyla sonlandırabiliriz. Şartlar sağlandığında, break komutu devreye girer ve döngü sonlandırılır. Bunun gibi bir çok örnek yaratmak mümkündür. continue Komutu break komutunun, döngüyü kırmak için olduğundan bahsetmiştik. Bunun dışında işlem yapmadan döngüyü devam ettirmek gibi durumlara da ihtiyacımız vardır. Bunun içinde continue ( Türkçe: devam ) komutunu kullanırız. [crayon-585e45875380f871888130/] 0 ile 10 arasındaki tek sayıları gösteren program örneğini yukarda görebilirsiniz. Elbette ki bu işi daha farklı ve daha iyi yapan bir program yazabilirdik. Ama şimdilik continue komutunun nasıl kullanıldığını inceleyelim. Program bir for döngüsü çalıştırmaktadır. Her defasında i değişkenin 2 ye göre modu alınır. Eğer sonuç 0 sa, bu sayının çift olduğunu gösterir. Dolayısıyla, bunun ekrana yazdırılmaması gerekir. Bu yüzden, döngü içersindeki işlemleri sürdürmek yerine, altta kalan kodları atlarız. Burada continue

komutu kullanılır ve kullanıldığı noktadan itibaren olan işlemler yapılmaz. Döngü başa döner, aynı işlemleri yapar. Bu sefer i tek sayı olacağından continue komutu çalışmaz ve sayıyı ekrana bastırırız. Yazar: Oğuzhan YILMAZ Karar yapıları, (if else, switch) Karar Yapıları Karar yapıları adından da anlaşılacağı gibi program akışında belirli şart(lar) doğrultusunda hangi kod bloklarının çalışacağına karar vermemize olanak tanır. C dili gibi bir çok dilde 2 farklı karar yapısı vardır. Biri if diğeri ise switch (veya case) ismiyle anılır. if Yapısı Bilgisayarda yapılan bütün mantıksal işlemler kaba bir temele dayanır. Şartlar sağlandığı halde yapılacak işlem belirlenir. Ve şartlar sağlandığında, bu işlemler yapılır. Şartların kontrol edilmesini, C (ve daha birçok) programlama dilinde if operatörünü kullanarak yaparız. if operatörünün genel kullanım yapısı şu şekildedir:

[crayon-585e458755137957797792/] Eğer if in altında birden çok komut varsa, ayraç işareti (veya küme parantezi) koymamız gerekir. Şayet if ten sonra, tek komut bulunuyorsa, ayraç koyup-koymamak size kalmıştır. Zorunluluğu yoktur. Örnek bir program yazalım. Bu programda kullanıcının klavyeden, bir tam sayı girsin. Ve bizde girilen sayı, 100 den büyükse, ekrana yazdıralım: [crayon-585e458755143879192056/] if-else Yapısı Bazı durumlarda, bir koşulun doğruluğuna göre sonuç yazdırmak yetmez. Aksi durumda da ne yapacağımızı belirtmek isteriz. Bunun için if-else yapısını kullanırız. if-else yapısı şu şekildedir: [crayon-585e45875514b569334633/] Önceki yazdığımız programı düşünelim; 100 den büyük olduğunda, ekrana çıktı alıyorduk. Bu programa bir özellik daha ekleyelim ve 100 den küçükse, bunu da söyleyen bir yapıyı oluşturalım: [crayon-585e458755153542416440/] Örnekte gördüğünüz gibi, bir koşulun doğruluğunu program kontrol ediyor ve buna doğru olursa, bazı işlemler yapıyor. Şayet verilen koşul yanlışsa, o zaman daha başka bir işlem yapıyor. Ancak ikisini de yapması gibi bir durum söz konusu değil.aşağıdaki akış diyagramlarında (flowchart) her iki durumu da görebilirsiniz. Yapısı: if-else Yapısı: if

İlişkisel (Relational) Operatörler Koşullu operatörlerde, koşulun doğruluğunu kontrol ederken kullandığımız ilişkisel operatörler, aşağıda verilmiştir: < Küçüktür > Büyüktür == Eşittir <= Küçük eşittir >= Büyük eşittir!= Eşit değildir Birleşik (Compound) Operatörler Bazı durumlarda, kontrol edeceğimiz koşul, tek bir parametreye bağlı değildir. Örneğin, bir kişinin yaşının 65 den küçük olup olmadığına bakabiliriz. Ama 65 den küçük ve 18 yaşından büyük

olup olmadığına karar vermek istersek, o zaman Birleşik/Birleştirici Operatörler i kullanmamız uygun olacaktır. Compound operator ler aşağıdaki gibidir: && and ve or veya! not tersi Bu operatörlerin mantıksal (logical) doğruluk tablosu da şu şekildedir: p q p&&q p q!p 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 İçiçe geçmiş (Nested) İfadeler if ile bir ifadeyi kontrol ediyor ve doğruysa, buna göre işlemler yapıyorduk. Bir de if else yapısı vardı. if else yapısında da, koşulu gene kontrol ediyor, doğruysa if bloğunun altında kalanları yapıyorduk; yanlışsa, else bloğunda olan kodlar işleme alınıyordu. Son derece basit bir mantık üzerine kurulmuş bu yapıyla, yapılamayacak kontrol yoktur. Ancak öyle durumlar vardır ki, if else yapısı yeterli verimliliği sunamaz. Diyelim ki, birden fazla kontrol yapmanız gereken bir durum oluştu. Hatta örnek vererek konuyu daha da somutlaştıralım. İstenilen bir programda, klavyeden size yaş bilgisi veriliyor.

Siz de bu bilgiye göre, şayet yaş 18 den küçükse çocuk; 18-30 yaş arasında genç; 30-50 yaş arasında ortayaş diye bir mesaj bastırıyorsunuz. Basit bir program. Şimdi bunu sadece if yapısıyla kuruyor olsaydık, her seferinde yaşın uygun aralıklara düşüp düşmediğini kontrol eder ve ona göre sonucu ekrana bastırırdık. Ama bu son derece verimsiz bir yöntem olurdu. Çünkü zaten yaş bilgisinin genç olduğuna dair bir karar vermişsek, sonrasında tutup bunun yaşlı olup olmadığını kontrol etmenin bir esprisi olmayacaktır. Verilebilecek en kötü cevabı aşağıda bulabilirsiniz: [crayon-585e458755162442567538/] Yukarda ki kodu if else kullanarak daha efektif hale getirebiliriz: [crayon-585e45875516b690919937/] Yukardaki program daha efektif bir yapı sunmuş olmasına rağmen, eğer kontrol ettiğimiz aralıkların sayısı çok fazla olsaydı, tam bir başbelası olacaktı! Çünkü if else içinde, bir başka if else bloğu ve onun içinde bir başkası bu böyle sürüp gidecekti. Kısacası performans olarak çok bir şey değişmese de, kodu yazan ve/veya okuyacak olan için tam bir eziyete dönüşecekti. İşte bu nedenlerle daha efektif yapılara ihtiyaç duyuyoruz. if else if Merdiveni if else if merdiveni yukarda verdiğimiz örnekler için biçilmiş kaftandır. if else if merdiveni, doğru bir şey bulduğu zaman kontrolu orada keser ve diğer koşulları kontrol etmeden blok sonlandırılır. Aşağıda if else if yapısını ve akış diyagramını bulabilirsiniz: if else if Yapısı

[crayon-585e458755174227398988/] if else if Akış Diyagramı if else if ile söylenebilecek son bir şey sonunda ki else tir. else koymak zorunlu değildir. Ancak hiçbir koşula uymayan bir durumla karşılaştığınızda, else devreye girer. Örneğin yukarda anlatıp, kodunu vermiş olduğumuz programda, belirtilen yaş aralıklarında değer girilmezse, hiçbir şey ekrana bastırılmayacaktır. Çünkü programa tanınmayan yaş aralığında ne yapılacağı öğretilmemiştir. Şimdi bu durumu da içerecek şekilde, programamımızı if else if yapısıyla tekrar yazalım: [crayon-585e45875517c801997104/] swicth case ifadesi

switch case, if else if yapısına oldukça benzer bir ifadedir. Ancak aralarında iki fark vardır. Birincisi, switch case yapısında, aralık değeri girmezsiniz. Direkt olarak ifadelerin bir şeylere eşit olup olmadığına bakarsınız. İkinci farksa, switch case yapılarında, illa ki uygun koşulun sağlanmasıyla yapının kesilmek zorunda olmayışıdır. break komutu kullanmadığınız takdirde, diğer şartların içindeki işlemleri de yapma imkanınız olabilir. switch case en tepeden başlayarak şartları tek tek kontrol eder. Uygun şart yakalanırsa, bundan sonra ki ifadeleri kontrol etmeden doğru kabul eder. Ve şayet siz break koymamışsanız, eşitlik uygun olsun olmasın, alt tarafta kalan case lere ait komutlarda çalıştırılacaktır. if else if ise daha önce söylemiş olduğumuz gibi böyle değildir. Uygun koşul sağlandığında, yapı dışarsına çıkılır. switch case yapısında ki durumu, aşağıdaki tabloda görebilirsiniz: switch case Yapısı [crayon-585e458755186893447309/] switch case Akış Diyagramı

Sanırım gözünüze biraz farklı gözüktü. Yapı olarak şimdiye kadar görmüş olduğunuz if else gibi gözükmese de, bir örnekten sonra arasında pek bir fark olmadığını göreceksiniz. Her komut sonunda koyduğum break komutu, zorunlu değildir ve o nedenle köşeli parantezle belirtilmiştir. break koyduğuz takdirde, uygun koşul sağlandıktan sonra, daha fazla kontrol yapılmayacak ve aynen if else if yapısında olduğu gibi program orada kesilecektir. Ama break koymazsanız, altında kalan bütün işlemler -bir daha ki break e kadar- yapılacaktır. Kodun sonunda gördüğünüz default komutu, if else if yapısında ki sonuncu else gibidir. Uygun hiçbir şart bulunamazsa, default komutu çalışır. Öğrendiğimiz bilginin pekişmesi için biraz pratik yapalım. Bir not değerlendirme sistemi olsun. 100 90 arası A, 89 80 arası B, 79 70 arası C, 69 60 arası D, 59 ve altıysa F olsun. Eğer 100 den büyük veya negatif bir sayı girilirse, o

zaman program hatalı bir giriş yapıldığını konusunda bizleri uyarsın. Bunu şimdiye kadar öğrendiğiniz bilgilerle, if else if yapısını kullanarak rahatlıkla yanıtlayabilirsiniz. Ama şu an konumuz switch case olduğundan, cevabını öyle verelim: [crayon-585e458755190264823499/] Algoritmaya bakalım: Önce sayıyı alıyor ve 10 a bölüyoruz. Yani girilen not, 57 ise 5.7 sonucunu elde ediyoruz. Ancak iki tam sayının sonucu bir virgüllü sayı veremez, tıpkı işleme giren değişkenler gibi tam sayı olarak döner. Dolayısıyla bilgisayarın elde edeceği sonuç, 5.7 değil, sadece 5 tir. switch case yapısında koşullar yukardan başlayarak kontrol ediliyor. case 5 e gelindiğinde eşitlik sağlanıyor. Ama break konmadığı için, switch case ten çıkılmıyor. Ve altında kalan işlemlerde yapılıyor. Altında herhangi bir işlem veya break olmadığından case 0 a kadar bu böyle sürüyor. Ve case 0 da ekrana bir çıktı alıp switch case yapısı break ile sonlandırılmaktadır. Arttırma (Increment) ve azaltma (decrement) işlemleri Daha önceki derslerimizde, aritmetik işlemlerden bahsetmiştik. Bunların dışında yapabileceğimiz başka şeylerde bulunmaktadır. Bunlardan biri de, arttırma ve azaltma işlemleridir. Eğer i adında bir değişkenin değerini 1 arttırmak isterseniz, i = i + 1 olarak yazarsınız. Veya 1 azaltmak isterseniz, benzer şekilde i = i 1 de yazabilirsiniz. Arttırma ve azaltma işlemleri bu olayı daha basit bir forma sokmaktadır. i = i + 1 yazmak yerine i++ veya i = i 1 yazmak yerine i yazabilirsiniz. Arttırma ve azaltma işlemleri temelde iki çeşittir. Birinci yöntemde yukarda yazdığımız gibi, arttırma/azaltma sonradan yapılır. İkinci yöntemdeyse arttırma/azaltma ilk başta yapılır. Aşağıdaki örneklere bakalım.

[crayon-585e45875519a479778598/] Yukardaki programı yazar ve çalıştırısanız elde edeceğiniz çıktı şu şekilde görünecektir: i = 11 ve j = 59 Çünkü arttırma ve azaltma işlemleri ekrana bastırmadan önce yapılmış ve i ile j nin değerleri değiştirilmiştir. Şimdi programı değiştirip şöyle yazalım: [crayon-585e4587551a2932385369/] Bu sefer program çıktısı şöyle olacaktır: i = 10 ve j = 60 Farkettiğiniz üzere hiçbir değişiklik yapılmamış gibi duruyor. Aslında değişiklik yapıldı ve program sonlanmadan önce i 10 olurken, j de 59 oldu. Ama arttırma ve azaltma işlemleri printf komutu çalıştırıldıktan sonra yapıldığı için, biz bir değişiklik göremedik. Kısacası önce arttırma (pre-increment) veya önce azaltma (predecrement) kullandığınızda, ilgili komut satırında çalışacak ilk şey bu komutlar olur. Ancak sonra arttırma (post increment) veya sonra azaltma kullanırsanız, o zaman bu işlemlerin etkileri ilgili komut satırından sonra geçerli olacaktır. Aşağıdaki özel tabloya bakabilirsiniz: Form Tip İsim Açıklama i++ postfix post-increment İşlem sonrası arttırma ++i prefix pre-increment İşlem öncesi arttırma i postfix post-decrement İşlem sonrası azaltma i prefix pre-decrement İşlem öncesi azaltma Gelişmiş atama (Advanced Assignment) yöntemleri C de yazım kolaylığı amacıyla sunulmuş bir başka konu da,

gelişmiş aşama yöntemleridir. Biraz daha uzun yazacağınız kodu, kısaltmanıza yaramaktadır. degisken_1 = degisken_1 (operator) degisken_2 şeklinde yazacağınız ifadeleri, daha kısa yazabilmeniz için, degisken_1 (operator) = degisken_2 şeklinde ifade edebilirsiniz. Gelişmiş atamalarda sunulan genel formlar şu şekildedir: [crayon-585e4587551ac582163258/] Sanırım aşağıdaki örneklere bakarsanız, konuyu çok daha net anlayacaksınız: [crayon-585e4587551b4491238984/] Conditional Operator (? ) Conditional Operator, if-else ile tamamen aynı yapıdadır. Hiçbir farkı yoktur. Tek farkı koda bakıldığında anlaşılmasının biraz daha zor oluşudur. Bir de if else gibi yazıyla ifade edilmez. Onun yerine soru işareti (?) ve iki nokta üst üste ( : ) kullanarak yazarız. Aşağıdaki tabloda if else yapısıyla karşılaştırılmalı olarak, Conditional Operator verilmiştir: if-else Yapısı [crayon-585e4587551bb640643118/] Conditional Operator (? ) Yapısı [crayon-585e4587551c2243301495/] Conditional Operator (? ) Akış Diyagramı

Şimdi de aynı programı, hem if-else, hem de conditional operator kullanarak yazalım: [crayon-585e4587551ca023551423/] Şimdi de aynı programı conditional operator kullanarak yazalım: [crayon-585e4587551d2097509116/] Program gördüğünüz gibi biraz daha kısaldı. Yazar: Oğuzhan YILMAZ Çok çalışmak abartılmış bir

erdem midir? İstanbulCoders aktivitesi kapsamında yapılan bir sunum. Sunucu: Güvenç Güngör Akış Şeması (Flowchart) Nedir? Bir problemle karşılaştığımızda çözümüne ulaşmak için zihnimizde bir takım hesaplar yaparız. Bu noktada yardımına başvurduğumuz bazı yöntemler vardır. Örneğin; Flowchart, bize yardımcı olacak tekniklerden biri.

İster bilgisayarla ister bilgisayarsız bir sorunu çözmek için belirli bir yol vardır ve ancak bu yol ile sağlıklı bir çözüme ulaşılabilir. Çözüme ulaşırken kullanılan bu yola algoritma denir. Yani algoritma, mevcut bilgilerden istenilene erişme yöntemidir. Bilişim alanı için algoritmayı tanımlayacak olursak, verilerin bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının ve sonucunun nasıl/nereye yazılacağının sözel olarak ifade edilmesi diyebiliriz. Bahsettiğimiz gibi söz ve yazı ile anlatılan algoritmanın görsel olarak simge veya sembollerle ifade edilmiş şekline Flowchart yani Akış diyagramları diyoruz. Flowchartların algoritmalardan farkı, adımların simgeler şeklinde kutular içine yazılmış olması ve adımlar arasındaki ilişkilerin oklar ile gösterilmesidir. Bu açıdan flowchartlar bir harita olarak düşünülebilir. Bu harita sayesinde mevcut algoritmanın anlaşılırlığı artarak bize process aşamasında yardımcı olur. Flowchart bir processin işlem basamaklarını diyagramsal gösterir. Böylece bir prosedürü başından sonuna kadar incelemeyi kolaylaştırır. Bir problemin çözüm aşamalarını kağıt üzerinde görmek hataları veya eksiklikleri daha rahat fark edip düzeltmeyi sağlar. Flowchartlar içerik ve biçimlerine göre genel olarak 3 grupta

sınıflandırılabilirler; 1- Doğrusal Akış Diyagramları: İş akışları input-processingoutput biçiminde olan diyagramlardır. 2. Mantıksal Akış Diyagramları: Geniş ölçüde mantıksal kararları içeren diyagramlardır. 3. Döngüsel Akış Diyagramları: Sorunun çözümü için, çözümde yer alan herhangi bir adım veya aşamanın birden fazla kullanıldığı diyagramlardır. https://youtu.be/ikzsqn3dkxc

KAYNAK:http://www.elektrikport.com Yazar : Berat DAĞTEKİN Değişken kavramı, veri türleri, (int, float, char ) DEĞİŞKEN VE SABİTLER Çoğu programda çıkış değerleri üretilmeden önce bir dizi hesaplamalar yapılır. Bu hesaplamalar esnasında verilerin geçici olarak saklanacağı alanların olması gerekir. C dilinde bu saklama alanlarına değişkenler denir. Veriler program içerisinde değişken ve sabit biçimlerinde kaydedilir. Değişkenler değerleri değiştirilebilen verilerdir. Sabitler ise değişkenlerin aksine atama yapıldıktan sonra değeri değiştirilemeyen verilerdir. Değişken ve sabitler faklı boyut ve biçimde program belleğine kaydedilirler. Veri çeşitleri ve Veri Çeşidi Değiştiricileri C de aşağıda gösterilen 5 temel veri çeşidi vardır: char : Karakter int : Tamsayı float : Kayan noktalı sayı

double : Çift duyarlıklı kayan noktalı sayı void : Değersiz Veri çeşidi değiştiricilerini kullandığınız zaman, printf() ve scanf() fonksiyonları farklı format tanımlayıcıları kullanır. Yukarıdaki tabloda gösterilen bütün değişken türlerine göre printf() ve scanf() fonksiyonları ile kullanılan format tanımlayıcıları aşağıdaki tabloda gösterilmektedir: Burada bahsi geçen format tanımlayıcılarının nasıl kullanıldığını anlamak için konumuza devam etmeden önce printf() ve scanf() fonksiyonlarına kısaca değinelim. printf() Fonksiyonu printf() fonksiyonu C nin genel amaçlı çıktı alma fonksiyonudur. Başka bir deyişle, ekrana istediğimiz verileri yazmak içim kullanılan bir fonksiyondur. printf() fonksiyonu karakter dizisinden oluşan tek bir değeri veya farklı değişken ve sabitlerden oluşan birden fazla değeri ekrana yazdırmak için kullanılabilir. Tek bir karakter dizisini ekrana yazdırmak için aşağıdaki yapı kullanılır: printf( Karakter-Dizisi ); Herhangi bir fonksiyona aktarılan değere argüman adı verilir. Biz bir fonksiyona argüman aktardığımızda, fonksiyonunun bu argüman ile geçirilen değeri kullanarak gerekli işlemi

yapmasını istemiş oluruz. Buradaki argüman tırnak işaretleri ( ) arasında yer alan karakter dizisidir. C de tırnak işaretleri arasında yer alan bir veya daha fazla karaktere Karakter Dizisi (String) adı verilir. [crayon-585e458756389858003172/] Yukarıdaki örnek program derlenip çalıştırıldığında aşağıdaki satırı ekrana yazar: makucoders Şimdi de, farklı değişken ve sabitlerden oluşan bir veya birden fazla değeri ekrana yazdırmak için printf() fonksiyonunun çalışmasını bir örnek üzerinde incelemeye çalışalım: printf() fonksiyonunu kullanarak her veri türündeki değişken ve sabit değerlerini ekrana yazdırabiliriz. Aşağıdaki işlem satırı, bir int sabit değeri olan 25 sayısını ekrana yazar: [crayon-585e458756395354561355/] Yukarıdaki işlem satırı ekrana aşağıdaki satırı yazar: Sayinin değeri : 25 Dikkat ederseniz, burada printf() fonksiyonu içinde yukarıda format tanımlayıcısı olarak verdiğimiz %d ifadesini kullandık. Bir önceki örneğimizde printf() fonksiyonu sadece ( ) işaretleri içinde kalan karakter dizisini ekrana yazmıştı. Ancak bu defa, printf() fonksiyonunun bir virgül ile ayrılmış 2 argümanı vardır. Bunlardan biri ( ) işaretleri arasında yer alan karakter dizisi, diğeri ise bir int sabiti olan 25 sayısıdır. printf() fonksiyonu ilk argüman içinde yer alan normal karakterleri ekrana yazar, format tanımlayıcısının yerine de ikinci argüman olan değeri olan 25 sayısını yazar. printf() fonksiyonunun ilk argümanı ( ) işaretleriyle sınırlandırılmış olan bir karakter dizisidir. Bu karakter dizisinin içinde hem normal karakterler hem de (%) işareti ile başlayan Format Tanımlayıcıları adı verilen ifadeler yer

alabilir. printf() fonksiyonu ( ) işaretleri arasında yer alan normal karakterleri sıra ile ekrana yazar. Format tanımlayıcıları ile karşılaştığında ise ekrana farklı bir veri yazacağını ve bu verinin printf() fonksiyonu çağrılırken karakter dizisinden sonra tanımlanmış olan argüman değerlerinden alınacağını anlar. Konunun daha kolay anlaşılması için aşağıda yer alan örneği incelemeye çalışalım: [crayon-585e4587563a0889091904/] Yukarıdaki program ekrana aşağıdaki satırı yazar: YazilimaGiris.com a hos geldiniz. 1,2,3 Burada printf() fonksiyonu için 3 argüman tanımlanmıştır. printf() fonksiyonu ( ) işaretleri içindeki karakter dizisini taramaya başlar. İlk %s format tanımlayıcısı ile karşılaştığında buraya bir karakter dizisinin geleceğini anlar ve karakter dizisinden sonraki ilk argüman değerini okuyarak (YazilimaGiris.com) ekrana yazar. Sonra ikinci format tanımlayıcısıyla karşılaşana kadar karakter dizisi içindeki normal karakterleri ekrana yazar (öğrenirken). İlk %d format tanımlayıcısı ile karşılaştığında yine buraya bir int sabitinin geleceğini anlar ve karakter dizisinden sonraki ikinci argüman değerini okuyarak (2) ekrana yazar. Daha sonra, karakter dizisinde yer alan bölümü ( farklı kitap ve ) ekrana yazar. İkinci %d format tanımlayıcısı ile karşılaştığında yine buraya bir int sabitinin geleceğini anlar ve karakter dizisinden sonraki üçüncü argüman değerini okuyarak (3) ekrana yazar. Son olarak, karakter dizisinin geriye kalan bölümünü ekrana yazar ( farklı derleyici kullandım). printf() fonksiyonunda kullanılan format tanımlayıcıları yerine sadece sabit değerler değil aynı zamanda değişkenlerin değerleri de konabilir. Yukarıdaki örneğin 2 argümanını sabit değerler yerine değişkenler yoluyla aktaralım:

[crayon-585e4587563ab966078447/] Yukarıdaki program ekrana aşağıdaki satırı yazar: YazilimaGiris.com a hos geldiniz 10, 20 Program bu defa format tanımlayıcıları yerine koyacağı değerleri değişkenlerden alır. Farklı örneklerle konuyu pekiştirmeye çalışalım: [crayon-585e4587563b3428838707/] Yukarıdaki örnekte, program aşağıdaki satırı ekran yazar: sayi1 değişkeninin değeri 100 dir. Program, 1 sayısı ile gösterilen işlem satırında sayi1 adlı int bir değişken oluşturur. 2 sayısı ile gösterilen işlem satırında id1 değişkenine 100 sayısını atar. printf() fonksiyonu ise değişken değerini ekrana yazar. [crayon-585e4587563bb619958371/] Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar: 25 ve M Program sayi1 adlı int ve harf1 adlı char değişkenlerine atadığı 25 ve C sabit değerlerini printf() fonksiyonu ile ekrana yazar. [crayon-585e4587563c3155128862/] Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar: 50 25 A 2.23900 dir Program, iki adet int, bir adet char ve bir adet float değişken olmak üzere toplam dört adet değişken bildirimi yapar. Sonra değişkenlere atanan değerleri printf() fonksiyonu ile ekrana yazar. Scanf() Fonksiyonu

Şimdi de klavyeden giriş yapılan değeri almak için kullandığımız scanf() fonksiyonuna kısaca değinelim. Klavyeden girilen sayısal bir değeri bellekteki bir değişkene atamak için scanf() standart kütüphane fonksiyonunu kullanabiliriz. Daha ilerideki bölümlerde görülebileceği gibi scanf() fonksiyonunun çok geniş kullanım alanı olmasına rağmen burada sadece klavyeden girilen değerlerin bir değişkene atanması için kullanılmasını inceleyeceğiz. scanf() fonksiyonunu kullanarak klavyeden girilen bir int değeri bellekte yer alan bir değişkene atamak için aşağıda gösterilen genel yapıyı kullanabiliriz: scanf( %d, &değişken-adı); scanf() fonsiyonunun kullanılması printf() fonksiyonuna benzer. Yapı olarak tek fark ikinci argüman olarak verilen değişkenin başına (&) işaretini almış olmasıdır. Bu işaretin neden kullanıldığı daha sonra ele alınacaktır. Yukarıdaki satırda scanf() fonksiyonu için 2 argümandan ilki ( ) işaretleri içinde yer alan bir karakter dizisidir. Bu dizi scanf() fonksiyonu için kullanılan format tanımlayıcılarından oluşmaktadır. scanf() fonksiyonu %d format tanımlayıcısını gördüğünde klavyeden bir int değerin okunacağını anlar. Bunun üzerine hemen ikinci argümanı olan değişken adına bakarak, klavyeden okuyacağı değeri atayacağı değişken adını tespit etmiş olur. Siz scanf() fonksiyonunu kullanarak klavyeden bir sayı okutmak istediğinizde, yazdığınız sayı bir rakamdan fazla olabileceğinden, siz ENTER tuşuna basana kadar scanf() fonksiyonu işlem yapmadan bekler. [crayon-585e4587563ce714209171/] Yukarıdaki ilk işlem satırında, sayi1 adlı bir int değişken bildirimi yapılmakta, ikinci işlem satırında ise klavyeden girilen int değer sayi1 değişkenine atanmaktadır. Şimdi, bu özelliği bir örnek üzerinde incelemeye çalışalım:

[crayon-585e4587563d6568737532/] Yukarıdaki örnekte, program klavyeden bir int değer girmenizi ister. Girdiğiniz değeri sayi1 adlı int değişkene atar. Daha sonra değişken değerini ekrana yazar. scanf() fonksiyonunu kullanarak klavyeden girilen float bir değeri bellekteki bir değişkene atamak için aşağıda gösterilen genel yapıyı kullanabilirsiniz: scanf( %f, &değişken-adı); Yukarıdaki satırda yer alan %f format tanımlayıcısı float sayılar için kullanılmaktadır. double sayılar için kullanılan format tanımlayıcısı ise %lf dir. Şimdi vereceğimiz örneklerle öğrendiklerimizi pekiştirelim: [crayon-585e4587563de520682132/] Yukarıdaki örnekte, program kullanıcıdan bir int ve bir float değeri klavyeden girmenizi ister. Sonra, girilen her iki değeri ekrana yazar. İlk printf() fonksiyon satırında yer alan \n ifadesi dikkatinizi çekmiş olabilir. Bu ifade program içinden bir sonraki satıra geçme olanağı sağlar. [crayon-585e4587563e6552800582/] Yukarıdaki örnekte, program kullanıcıdan 2 adet int ve 2 adet float sayı değerini klavyeden girmenizi ister. Sonra int değerlerin çarpımını ve float değerlerin toplamını ekrana yazar. [crayon-585e4587563f4668990799/] Yukarıdaki örnekte, program sizden 2 int değer girmenizi ister ve bu değerlerin karelerinin toplamını ekrana yazar. Yazar: Oğuzhan YILMAZ

Javascript Dersleri (Videolu) Javascript Dersleri Swift eğitim seti Ersin Şengül tarafından hazırlanmış olan Swift eğitim seti videoları. Uzaktan tam zamanlı çalışma Crossover ile uzaktan, tam zamanlı çalışma fırsatları..