C/C++ ile Programlamaya Giriş. Yrd.Doç.Dr.Bülent Çobanoğlu



Benzer belgeler
Yrd.Doç.Dr.Bülent Çobanoğlu

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

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

PROGRAMLAMAYA GİRİŞ DERS 2

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

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

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

C++ Operatörler (Operators)

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

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

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Nesne Yönelimli Programlama

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

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

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

C Konsol Giriş Çıkış Fonksiyonları

C Programlama Dilininin Basit Yapıları

Genel Programlama II

Temel Giriş/Çıkış Fonksiyonları

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

/*int sayi1, sayi2,toplam=0;

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Eln 1001 Bilgisayar Programlama I

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

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

Fonksiyonlar (Altprogram)

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

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Algoritmalar ve Programlama. Algoritma

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

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

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

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

3. VERİ GİRİŞ-ÇIKIŞI (4ncü hafta)

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

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

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

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

Hafta 8 C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

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


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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

C Programlama printf() Fonksiyonu

C#(Sharp) Programlama Dili

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

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

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

Karşılaştırma İşlemleri ve Koşullu İfadeler

BİL1001 Bilgisayar Bilimlerine Giriş 1

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Algoritma ve Programlamaya Giriş

C PROGRAMLAMA D İ L İ

BİLGİSAYAR PROGRAMLAMA DERSİ

Giris {\} /\ Suhap SAHIN Onur GÖK

Dr. Fatih AY Tel: fatihay@fatihay.net

ALGORİTMA VE PROGRAMLAMA I

IF / ELSE IF / ELSE. Bu deyimler, koşullu işlem yapan deyimlerdir ve daima if deyimi ile başlar, else if veya else ile devam eder.

Pascal Programlama Dili

HSancak Nesne Tabanlı Programlama I Ders Notları

C PROGRAMLAMA DİLİ. Hedefler

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Adım Adım C. Dr. Hidayet Takcı

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0

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

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

C Programlama Dilinde Değişkenler

Nesne Tabanlı Programlama

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

Algoritma ve Akış Diyagramları

Temel Bilgisayar Programlama

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

Sınav tarihi : Süre : 60 dak.

Programlama Dillerinde Kullanılan Veri Tipleri

Bigisayar Programlama

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

Dr. Fatih AY Tel:

Adım Adım C-II. Eksik kalmış konular

BÖLÜM 4: DEĞİŞKENLER, SABİTLER VE OPERATÖRLER

M.ilkucar MAKU MYO 1

Transkript:

C/C++ ile Programlamaya Giriş Yrd.Doç.Dr.Bülent Çobanoğlu

Algoritmadan Kodlamaya Geçiş Dr.Bülent Çobanoğlu, SAÜ, Programlama Ders Notu

C/C++ Program Yapısı C/C++ ve Java dilleri aynı gramer yapısını kullanır; Her komut satırı ; karakteri ile sonlandırılır. Büyük küçük harf ayrımına dikkat edilmelidir. (main deyimini Main şeklinde yazdığınızda program hata verir). Açıklama satırları için // ve /*..*/ joker karakterleri kullanılır. Eğer tek satırlık bir açıklama yapılacaksa // karakteri, Birden fazla satırlık açıklama yapılacaksa /*. */ karakterleri kullanılır. Her programın bir tane main isimli ana fonksiyonu (metodu) olmalıdır. C Dilinde yazılan bir programın dosya uzantısı.c C++ dilinde yazılan bir programın dosya uzantısı ise.cpp dir Her C programı aynı zamanda bir C++ programıdır ama tersi her zaman söz konusu değildir. Örnek bir C programının kalıbı Kütüphane dosyaları #include <stdio.h> #include <conio.h> Ana (main) fonksiyon { Başla { Tanımlamalar Program gövdesi int main() //Değişken(int a; gibi) tanımlamaları yapılır // printf("merhaba!"); (işlem ve hesaplamalar) // } Dur getche(); //Ekran görüntüsünü bir tuşa basıncaya kadar bekletir } Dr. Bülent ÇOBANOĞLU

PROGRAMLAMA TEMEL KAVRAMLARI Hangi programlama dilini kullanırsak kullanalım bazı temel kavramlar değişmez. Bunlar; 1. Komutlar 2. Değişkenler 3. Sabitler 4. Mesajlar 5. Operatörler Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

Bilgisayarın o an ne yapacağını belirten emirlerdir. Komutlar kısaltılmış ya da tam İngilizce kelimelerden oluşur. Örneğin; Yaz SAU şeklindeki komut farklı dillerde; Basic/Visul Basic dilinde; Print SAU C/C++ dilinde; printf SAU ; Pascal dilinde; write SAU Java dilinde; System.out.println( SAU"); şeklinde ifade edilmektedir. KOMUTLAR Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

Değişkenler Bilgileri saklamak üzere kullandığımız ismini ve tipini bizim belirlediğimiz bellek alanlarına verilen isimdir. Kısaca bellekte herhangi bir adresi gösteren sembolik bir addır. Kullandığımız programlama dili ne olursa olsun kendisine verdiğimiz değerleri belleğinde hangi ad ile saklayacağını biz söylüyoruz. Belleğinde nerede saklayacağını (adres bilgisini) ise bilgisayar kendisi belirler. Bilgilerin geçici olarak tutulduğu yere bellek denir. Değişkenlerde belleklerde tutulur. Değişkenleri genel olarak ikiye ayırırız; Sayısal tipteki değişkenler ki içerisinde sayıları sakladığımız değişkenlere sayısal veya nümerik değişken adını veriyoruz. int a; // şeklindeki tanımlamada a değişkeni sadece tamsayı alabilir. Alfa sayısal (Sözel) tipteki değişkenler ki içerisinde sayı haricindeki bilgileri (isim, soy isim, adres, vb.) sakladığımız değişkenlere de alfa sayısal, alfa nümerik, sözel, metinsel veya string değişken adını veriyoruz. char a; // a değişkeni sadece alfa sayısal (karakter) türünde veri alabilir. Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

Değişkenlere İsim Verme Kuralları Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu Değişkenlerin isim ve tiplerinin programcı tarafından belirlendiğini söylemiştik. İşte değişkenleri tanımlarken dikkat edeceğimiz hususlar; 1. Bir değişkenin ilk karakteri mutlaka harf olmalıdır. 2. Değişken isimlerinin içerisinde _ karakteri hariç, boşluk veya özel karakterler bulunmamalıdır. [.,@? * : ;!, ( / - + = % & $ # Karakterleri gibi] 3. Değişken isimlerinde Türkçe karakter kullanmamaya özen gösterilmelidir. 4. Değişken isimleri kullanılan programlama diline ait komutları içeremez. O programlama diline ait komutlara ayrılmış sözcükler (reserved words) veya anahtar sözcükler (keywords) de denilmektedir. 5. Değişken isimleri, anlamlı ifadelerden oluşmalıdır. 6. C ve Java dilleri büyük-küçük harf ayrımı yapan (case sensitive) bir dildir. ( Yani Ad değişkeni ile ad değişkeni farklı değişkenler olarak kabul edilir). NOT: Değişkenlere ( aynı zamanda nesne ve sınıf isimleri gibi diğer tanımlayıcılara da) isim verirken, genellikle değişken ve içindeki her anlamlı sözcük büyük harfle başlamalıdır (Örneğin; AdSoyad, EnKucukSayi gibi)

Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu C/C++ diline ait komutlar ve ayrılmış kelimeler C/C++ için örnek Değişken Tanımlamaları Ali7 Geçerli Bir değişkenin ilk karakteri mutlaka harf olmalıdır. 7Ali Geçersiz Ali_Veli Geçerli Değişken isminde _ alt tire özel karakteri kullanılabilir. Ali Veli Geçersiz Değişken isminde boşluk karakteri kullanılmaz. Çömlek Geçersiz Java dilinde değişken tanımlamalarında Türkçe karakter kullanılabilirken C dilinde kullanılmaz. do Geçersiz Değişken isimleri kullanılan programlama diline ait komutları içeremez.

Değişkenlere Değer Aktarma( = ) Bir aritmetik ya da string ifadeyi değişkene aktarmak için = parametresi kullanılır. { a = 5, b = A gibi } NOT: = parametresi ile eşitliğin sağ tarafındaki ifadenin sonucu sol taraftaki değişkene aktarılırken = = parametresi ile eşit mi sorgusu yapılır. { Örneğin, A sayısı 5 e eşit mi? Sorgusu A= =5 işlemi ile sağlanır}. Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

Değişkenlerin Tanımlanması Bir değişken kullanılmadan önce tanımlanır. Her değişken belirli bir veri tipine/türüne sahip olmalıdır (int, long, char gibi). Bu veri tipi, değişkenin bellekte kaplayacağı alanı ve sakladığı bilginin büyüklüğünü belirtir. Veritipi degisken_adi [= başlangıç değeri]; Burada değişkenlere tanımlama aşamasında başlangıç değeri atanması isteğe bağlı bir durumdur, zorunlu değildir. Örnek değişken tanımlamaları; int x,y ; char a; int toplam=0; // Tamsayı türünde x ve y isimli iki değişken tanımlandı. // Karakter(metin) türünde a isimli bir değişken tanımlandı. /* Tamsayı türünde toplam isimli değişkene başlangıç değeri olarak 0 atandı. */ Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

C/C++ Dilinde Kullanılan Temel Veri Tipleri Not-1: unsigned ibaresi ile veri tipi değer aralığı 0 dan başlatılırken, short ifadesi ile veri tipinin değer aralığı daraltılmış olur. Not-2: C++ dili için geçerli olan bool veri tipi C dilinde geçersizdir. C dilinde bool veri tipini kullanmak için #include <stdbool.h> kütüphanesini program başına eklemek gereklidir. Not-3: void Veri Türü: Fonksiyonlarda fonksiyon geriye değer döndürmeyecekse veya kullanılacak bir değişken veri türüne sahip olmayacak ise veri türü olarak void belirlenmelidir. Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

SABİTLER Program içerisinde değeri değişmeyen ifadelere sabit denir.( sayısı, 2.5, gibi). Sabit değerler sayısal ve string olmak üzere ikiye ayrılırlar. İki tırnak ( ) işareti arasında yazılan her türlü bilgi string sabittir. Sabitler özellikle bilinen değerlerin kullanımını sağlar. Kodlamayı ve kodun okunabilirliğini kolaylaştırırlar. Java dilinde değişkenleri sabit olarak tanımlamak için değişken tanımının önüne final sözcüğü getirilirken C dilinde #define komutu veya const komutu kullanılır. { const float pi=3.14; gibi} Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

Mesajlar Kullanıcı ile iletişim kurmak için kullanılır. Mesajlar kullanıcıyı yönlendirmek amacıyla kullanılırlar. ( Bir sayı giriniz ) gibi kullanıcıyı program çalışırken yönlendiren ifadelere mesajlar denir. C/C++ dilinde printf() fonksiyonu mesajların ve program sonuçlarının ekranda gösterilmesini sağlayan bir komuttur. printf( format dizgisi,çıktı listesi); Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

Veri çıkışı (Mesaj basma) komutu -printf Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

Çıkış Karakterleri (Escape Characters) Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu Mesajların ekranda gösteriminde printf komutu ile birlikte bazı çıkış karakterleri kullanılır. Bunlar; Basılacak Karakter Çıkış Karakteri Örnek kod Ekran Çıktısı ' (Tek Tırnak) \' "Bade\'nin Evi" Bade nin Evi " (Çift Tırnak) \" "Bade dedi \"Selam\" " Bade dedi "Selam" \ (Backslash) \\ "C:\\" C:\ Bir alt satıra geç \n printf ("a\nb"); a b Bir tab boşluk \t "1\t2" 1 Ø 2 Backspace tuşu \b "12\b3" 13 Enter tuşuna basıldı (Satır başı) \r "Bade\rZehra" Bade Zehra Bip sesi \a PC içerisindeki hoparlorden bip (alert)sesi gelir Örnek;

printf format dizgisi Basılacak Karakter Çıkış Karakteri Açıklama Tamsayı (işaretli) %d char veya int türlerini onlu tamsayı formatında gösterir. Tamsayı (işaretsiz) %u unsigned int türünü işaretsiz onlu tamsayı formatında gösterir. Ondalıklı sayı %f float ve double türlerini onlu sistemde ondalıklı olarak gösterir. Ondalıklı sayı %g İşaretli veya üstel formatta ondalıklı sayı olarak gösterir. Ondalıklı sayı %e float ve double türlerini üstel biçimde gösterir. Karakter (Tek) %c Tek bir karakteri ekrana basar String (Karakter dizisi) %s Stringleri karakter dizisi şeklinde ekranda gösterir. Hexadecimal (Onaltılı) %x Octal ( Sekizli) %O int türünü hexadecimal- Onaltılık tamsayı (0,1,2, A,B,..F) formatında gösterir int türünün Octal-Sekizlik tamsayı (0,1,2,3,4,5,6,7) formatında gösterir. int x = 13; printf( %d, x); Çıktı: 13 Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

printf komutunun kullanım örnekleri Komut Satırı printf("%s\b%s ","sau","tf?"); Ekran Çıktısı printf("%s\'\t%s ","sau","tf"); int a=9, b=12; printf("%d\t%x",a,b); float a=9; int b=12; printf("%.2f\\%o",a,b); printf ("\"Bade\"\nGeldi." ); Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

Çıkış Karakterleri (Escape Characters) Mesajların ekranda gösteriminde printf komutu ile birlikte bazı çıkış karakterleri kullanılır. Bunlar; Basılacak Karakter Çıkış Karakteri Örnek kod Ekran Çıktısı ' (Tek Tırnak) \' "Bade\'nin Evi" Bade nin Evi " (Çift Tırnak) \" "Bade dedi \"Selam\" " Bade dedi "Selam" \ (Backslash) \\ "C:\\" C:\ Bir alt satıra geç \n printf ("a\nb"); Bir tab boşluk \t "1\t2" 1 Ø 2 Backspace tuşu \b "12\b3" 13 Enter tuşuna basıldı (Satır başı) \r Örnek; "Bade\rZehra" b Bade Zehra a Dr.Bülent Çobanoğlu, SAÜ, Programlama Ders Notu

printf format dizgisi Basılacak Karakter Çıkış Karakteri Açıklama Tamsayı (işaretli) %d char veya int türlerini onlu tamsayı formatında gösterir. Tamsayı (işaretsiz) %u unsigned int türünü işaretsiz onlu tamsayı formatında gösterir. Ondalıklı sayı %f float ve double türlerini onlu sistemde ondalıklı olarak gösterir. Ondalıklı sayı %g İşaretli veya üstel formatta ondalıklı sayı olarak gösterir. Ondalıklı sayı %e float ve double türlerini üstel biçimde gösterir. Karakter (Tek) %c Tek bir karakteri ekrana basar String (Karakter dizisi) %s Stringleri karakter dizisi şeklinde ekranda gösterir. Hexadecimal (Onaltılı) %x veya %X Octal ( Sekizli) %O int türünü hexadecimal- Onaltılık tamsayı (0,1,2, A,B,..F) formatında gösterir. int türünün Octal-Sekizlik tamsayı (0,1,2,3,4,5,6,7) formatında gösterir. Komut Satırı int a= 13; printf("%f", (float)a); printf("a=%d",a); printf("a=%x",a); printf( "%c",'a' ); printf("%s","bade"); Ekran Çıktısı 13.0000 a=13 a=d Dr.Bülent A Çobanoğlu, SAÜ, Programlama bade Ders Notu

Veri girişi komutları Klavyeden yâda dışardan veri girişini algoritmadaki Gir emir kipi ile ifade ettik. Aşağıdaki tablodan da görüleceği üzere klavyeden veri girişi için C dilinde scanf komutu, Java dilinde Scanner sınıfının metotları, C++ dilinde ise scanf ve cin>> komutları kullanılmaktadır. C dili int a; scanf ("%d", &a); C++ Dili int a; scanf (" %d", &a); int a; std::cin>>a; Dr.Bülent Çobanoğlu, SAÜ, Programlama Ders Notu

scanf deyimi Dışardan veri girişi için kullanılan bir C\C++ komutudur. scanf komutunun ilk parametresi (çıkış formatı) printf ile aynıdır. İkinci parametresi ise tanımlanan bir değişken ismidir ve önüne & operatörü gelmelidir. Kullanım şekli; scanf ( çıkış formatı, &degisken); çıkış formatı kısmına sadece printf format dizgisi tablosundaki format karakterleri (%d, %f, %s, gibi) yazılabilir. scanf ( "%d,%d,%c", &a, &b, &c); scanf ( "%c %c %f", &c1, &c2, &sayi); scanf ( "%d-%c- %f", &s1, &c1, &s2); //Klavyeden veri girişi yaparken 3, 4, a aralarında virgül kullan //Klavyeden veri girişi yaparken a h 5.4 aralarında boşluk kullan //Klavyeden veri girişi yaparken 4-q-5.4 aralarında boşluk kullan Dr.Bülent Çobanoğlu, SAÜ, Programlama Ders Notu

C++ dilinde printf - scanf komut eşdeğerleri int r, alan; cout << "Gir Yari çapı: "; //printf yerine kullanılabilir cin >> r; //scanf yerine kullanılabilir cout << "Alanı: " << alan << endl; Not1: cout komutu iostream başlık dosyasında bulunduğundan örnek programın başında #include <iostream> komutu kullanılır. Not2: Program başında using namespace std; deyimi kullanılmalıdır. Bu bildirim cin, cout ve endl degerlerine kolay erişimi sağlar. Aksi takdirde std::cin >> r; şeklinde yazmamız gerekirdi. C standardında başlık dosyalarına.h uzantsı verilir. C++ standardında ise bazı başlık dosyalarının uzantısı bulunmayabilir. Örnekteki iostream başlık dosyası C++ ile tanımlanmış yeni baslık dosyalarına bir örnektir. Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

Bir karenin alanını hesaplayan programın C ve C++ dillerine (printfcint, scanf-cout) göre kodlanması: C Dili ile yazıldım C++ Dili ile yazıldım Dr.Bülent Çobanoğlu, SAÜ-TEF, Programlama Ders Notu

OPERATÖRLER İşlem yapmamızı sağlayan işaretlere operatör (işleç) adı verilir. Genellikle; Aritmetiksel { +, -, *, /, gibi }, Mantıksal { ve, veya, değil, gibi} Karşılaştırma { <, >, =, gibi } Artırma ve azaltma { ++, --, gibi} Aritmetiksel atama { +=, *=, -=, gibi} Bitsel { <<, >>, ^, gibi} operatörleri isimleri altında sınıflandırılırlar ve her programlama dilinde farklı şekillerde gösterilebilirler. Dr. Bülent ÇOBANOĞLU

OPERATÖRLER Operatör Tipi Sembolik Gösterimi Aritmetiksel operatörler +, -, *, / ve % Artırma ve azaltma operatörleri ++ ve -- Aritmetiksel atama operatörleri =, +=, -=, *=, /=, %=, >>=, <=, >>>=, &=, ^= ve = Mantıksal operatörler &&,,! ve ^ Karşılaştırma operatörleri >, <, = =, >=, <= ve!= Bit işlem operatörleri &,, ^, >>, <<, >>> ve ~ İkili karşılaştırma operatörü?: Ayırma operatörü, (Virgül) Dr. Bülent ÇOBANOĞLU

Aritmetiksel Operatörler İŞLEMLER Aritmetik Operatör Matematiksel gösterimi JAVA dili gösterimi C/C++ dili gösterimi Toplama + X+Y X + Y X + Y Çıkartma - X-Y X Y X Y Çarpma * (XY),(X.Y), (X*Y) X * Y X * Y Bölme / X/Y ve X / Y X / Y Üs alma Yoktur 3 2 3*3 3*3 Math.pow(3,2); pow(3,2); Karekök alma Yoktur 3 Math.sqrt(3); sqrt(3); Mod Alma (Kalanı Alma) % X Mod Y X % Y X % Y String Birleştirme + BadeSare Bade + Sare Bade + Sare Eksi (Negatif) - Y Y Y X Y Dr. Bülent ÇOBANOĞLU

2 3 1 Aritmetiksel Operatörler Matematiksel ifade Java dili kodlaması C/C++ dili kodlaması ( a*a +b*c ) / ( 2*a*b) ( a*a +b*c ) / ( 2*a*b) Matematiksel ifade Java dili kodlaması C/C++ dili kodlaması y=pr q +w/x-z y = p * Math.pow(r, q) + w /x-z; y = p * pow(r, q) + w /x-z; Matematiksel ifade Java dili kodlaması C/C++ dili kodlaması c=math.sqrt(a)+b*b; c= sqrt(a) + b*b; İşlem önceliği Matematiksel ifade Java dili kodlaması C/C++ dili kodlaması z= - (5*Math.pow(a,(2/3)) / (Math.sqrt(x*x-y*y))); z= - (5* pow(a,(2/3)) / (sqrt(x*x-y*y))); Dr. Bülent ÇOBANOĞLU

SoruA: matematiksel işlemini C dilinde kodlayınız. {z= - (5*pow(a,(3/2)) / 4); } SoruB: 9 için C Dilinde kodlayınız; #include <stdio.h> //printf için lazım #include <conio.h> //getche() için lazım #include <math.h> //pow için lazım int main () { double z; int a = 9; float b= (float) 3/2; z = -(5 * pow(a, b) / 4); printf("z = %g", z); getche(); } //return 0 da kullanılabilir Dr. Bülent ÇOBANOĞLU

Artırma ve Azaltma Operatörleri İşlem Operatör Kullanılışı (Örnek) Açıklama Ön Artırma ++ ++Degisken (A=++B) Önce değişken değerini 1 artır, sonra kullan. (B=B+1; A=B ;) Önce değişken değerini al, Son Artırma ++ Degisken++ (A=B++) Ön Çıkarma -- --Degisken (A=--B) Son Çıkarma -- Degisken-- (A=B--) kullan sonra 1 artır. (A=B;B=B+1) Önce değişken değerini 1 azalt, sonra kullan. (B=B-1;A=B;) Önce değişken değerini al, kullan sonra 1 azalt. (A=B; B=B-1) x=30; y=10; z=x*y++; Burada çarpma işleminden sonra y değeri artırılmış dolayısı ile z=300 değerini alır. x=30; y=10; z=x*++y; Burada ise önce y değeri artırılmış sonra ise çarpma işlemi gerçekleşmiştir. Dolayısı ile z=330 değerini alır. Dr. Bülent ÇOBANOĞLU

Karşılaştırma Operatörleri Verilerin birbiriyle karşılaştırılmasında kullanılır. Sonuç doğru ise 1 ya da true, yanlış ise 0 ya da false değerini üretir İşlem Operatör C/C++/Java Eşdeğeri Örnek gösterim Büyük > > A < B Küçük < < A > B Büyük Eşit >= A <= B Küçük Eşit <= A >= B Eşit mi? = == A == B Eşit değil!= A!= B (Koşul)? (işlem1) : (işlem2) İkili karşılaştırma?: {Koşul doğru ise <işlem1> değilse <işlem2> gerçekleşir.} Dr. Bülent ÇOBANOĞLU

Aşağıda verilen F fonksiyonunu hesaplayan matematiksel ifadenin algoritmasını oluşturup, akış şemasını çiziniz ve bilgisayar ortamında kodlamasını yapınız. F= x 0, x 2 +1 x 1, x 0<x<1, x Algoritması Akış şeması C/C++ Dili Kodlaması Java Dili Kodlaması 1.Başla 2. Gir X değerini; 3. Eğer X 0 ise F=X 2 +1; 4. Eğer X 1 ise F=X; 5. Eğer 0<X<1 ise F= X; 6. Yaz X değerini 7. Dur #include <stdio.h> #include <conio.h> #include <math.h> int main() { float X,f; printf("gir bir sayı :"); scanf("%g", &X); } if (X<=0) {f=pow(x,2)+1;} if (X>=1) {f=x;} if (X>0 && X<1) {f=sqrt(x);} printf ("f= %g", f); getche(); public static void main(string[] args) { System.out.println("Bir sayı giriniz"); Scanner gir = new Scanner (System.in); int X=gir.nextInt(); double f = 0; if (X<=0) {f=math.pow(x,2)+1;} if (X>=1) {f=x;} if (X>0 && X<1){f=Math.sqrt(X);} System.out.printf ("f= %g", f); } Dr. Bülent ÇOBANOĞLU

Bir sayının negatif mi pozitif mi olduğunu bulan programın akış şemasını çiziniz ve bilgisayar ortamında kodlamasını yapınız. Akış Şeması C/C++ Dilinde Kodlaması #include <stdio.h> #include <conio.h> int main() { int A; printf("gir bir sayı :"); scanf("%d", &A); printf((a>=0)? "poz." : "neg."); getche(); } Dr. Bülent ÇOBANOĞLU

Mantıksal Operatörler İŞLEM OPERATÖR KARŞILAŞTIRMA C/C++/JAVA NOTASYONU NOTASYONU Mantıksal VE (AND) && A VE B A && B Mantıksal VEYA (OR) A VEYA B A B Değil (NOT)! A DEĞĠL B A! B Özel VEYA (XOR) ^ A ÖZELVEYA B A ^ B X Y! X! Y X && Y X Y X ^ Y (Değil X) (Değil Y) (X VE Y) (X VEYA Y) (X ÖZELVEYA Y) true true 0 0 1 1 0 true false 0 1 0 1 1 false true 1 0 0 1 1 false false 1 1 0 0 0 Dr. Bülent ÇOBANOĞLU

BİT İŞLEM OPERATÖRLERİ İşlem Operatör Karşılaştırma C/C++/Java Notasyonu Notasyonu Örnek Sonuç Bit düzeyinde VE & A VE B A & B 3 & 5; 1 Bit düzeyinde VEYA A VEYA B A B 3 5 7 Bit düzeyinde Özel VEYA ^ A Özel VEYA B A ^ B 3 ^ 5 6 Değil veya 1 e tümleyen ~ Değil A ~ A ~3-4 Sola kaydır << A << basamak A << değer 3 << 2 12 Sağa kaydır >> A >> basamak A >> değer 9 >> 2 2 A B A B A&B A^B ~A 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 Dr. Bülent ÇOBANOĞLU

Aritmetiksel Atama Operatörleri Toplam +=5; Toplam=Toplam + 5; Toplam += i++; Toplam=Toplam + i; i=i+1; İşlem Operatör C/C++/Java Gösterimi Eşdeğeri /Açılımı Aktar = A = B A = B Topla ve aktar += A += B A = A + B Çıkar ve aktar -= A -= B A = A - B Çarp ve aktar *= A *= B A = A * B Böl ve aktar /= A /= B A = A / B Kalanı al ve aktar %= A %= B A = A % B Sola kaydır ve aktar* <<= A<<=B A=A<<B Sağa kaydır ve aktar* >>= A>>=B A=A>>B VE le ve aktar* &= A&=B A=A&B VEYA la ve aktar* = A =B A=A B Özel VEYA la ve aktar* ^= A^=B A=A^B Değilini Al ve aktar* ~= A~=B A=A~B * Bu konutlar bit düzeyinde (sayının ikili/binary karşılığını alarak) işlem yapar Dr. Bülent ÇOBANOĞLU

Operatörlerin Öncelik Sıraları Öncelik İşlem önceliği İşlemler İşlem Simgesi Sırası Parantez içi ( ) Soldan sağa 1 Son artırma/azaltma < > ++, < > -- Matematiksel fonksiyonlar pow,sqrt,sin, Dizi işlemleri [ ] 2 Ön Artırma/Azaltma ++< >, --< > Sağdan sola Pozitif, negatif yapma + - Değil (NOT) ~< >,!< > 3 Çarpma, Bölme veya Kalan *, /, % Soldan sağa 4 Toplama veya Çıkarma + veya - 5 Kaydırma << veya >>, >>> 6 Karşılaştırma <,<=,>,>= 7 Karşılaştırma = =,!= 8 Bit düzeyinde VE (AND) & 9 Bit düzeyinde Özel VEYA (XOR) ^ 10 Bit düzeyinde VEYA (OR) &, ^, 11 Mantıksal VE (AND) && 12 Mantıksal VEYA (OR) 13 İkili koşullu karşılaştırma?: Sağdan sola 14 Atama =,+=,-=,*=,/=, %= 15 Bitsel Atama >>=, <<=, &=, ^=, = Dr. Bülent ÇOBANOĞLU

Aşağıdaki program parçasının çalışmasından sonra k değeri ne olur? int a=3,m=10,k; k=!( (a<5)!= (m>3) ); k=!( (a<5)!= (m>3) ); k=!( true!= true) k=! false k=true Not: Sonuç değeri k değişkeninde Java dilinde true olarak saklanırken C/C++ dilinde 1 olarak saklanır. Dr. Bülent ÇOBANOĞLU

Aşağıdaki örnek programın çalıştırılmasından sonra d,e,f,g ve h değişkenlerinin değeri ne olur? int b=1, c=2; int d=b & c; int e=b c; int f=b ^ c; int g=c >>1; int h=c <<2; // C Programı #include <stdio.h> #include <conio.h> #include <math.h> int main() { int b=1,c=2; printf ("d= %d\n", b&c); printf ("e= %d\n", b c); printf ("f= %d\n", b^c); printf ("g= %d\n", c>>1); printf ("h= %d\n", c<<2); } getche(); Dr. Bülent ÇOBANOĞLU

Sayı Sistemleri Dönüşümü On lu sayıların İkili sayılara dönüştürülmesi { sayi 10 =k n k n-1 k n-2. k 0 } Sayı Bölüm Kalan Sonuç (3):2 1 =k 1 1=k 0 11 (6):2 3:2 (9):2 4:2 2:2 3 1 =k 2 4 2 1 =k 3 0 =k 0 1 =k 1 1 =k 0 0 =k 1 0 =k 2 İkili sayıların Onlu sayılara dönüştürülmesi { İkiliSayı*2 BasamakDeğeri + } (1101) 2 = 1*2 0 +0*2 1 +1*2 2 +1*2 3 =1+0+4+8=13 (0011) 2 =1*2 0 +1*2 1 +0*2 2 +0*2 3 = 1+2+0+0=3 110 1001 Ödev. Verilen 10 tabanındaki herhangi bir sayıyı ikilik tabana (ikilik sayı sistemine) çeviren programın algoritmasını (akış şemasını) oluşturup, programlama dilleri ile kodlamasını yazınız. Dr. Bülent ÇOBANOĞLU

Basit Giriş-Çıkış İşlem Örnekleri Örnek. Klavyeden girilen iki sayının farkını alan programı yazınız. Algoritması Akış şeması C/C++ dili kodlaması 1.Başla 2.Gir iki sayı (A,B); 3.Hesapla Farkını (Fark=A-B); 4.Göster Farkı (Fark); 5.Dur #include <stdio.h> #include <conio.h> int main() { int A, B, Fark; printf ("Gir, İki Sayi\n"); scanf("%d" "%d",&a, &B); Fark=A-B; printf("fark..:%d", Fark); getche(); } Dr. Bülent ÇOBANOĞLU

Basit Giriş-Çıkış İşlem Örnekleri Örnek. Klavyeden girilen A ve B gibi iki sayının ortalamasını alan programı kodlayınız. Algoritması Akış Şeması C/C++ dili kodlaması 1.Başla 2.Gir iki sayı (A,B); 3.Hesapla Ortalamayı (ortalama=(a+b)/2); 4.Yaz ortalamayı (ortalama); 5.Dur #include <stdio.h> #include <conio.h> int main() { int A, B; float ortalama; printf ("Gir İki Sayi..:\n"); scanf("%d" "%d",&a, &B); ortalama=(float)(a+b)/2; printf("ortalama..:%f", ortalama); getche(); } Dr. Bülent ÇOBANOĞLU

Basit Giriş-Çıkış İşlem Örnekleri Örnek. Klavyeden girilen quiz1, quiz2, odev, vize ve final notlarına göre bir derse ait başarı notunuzu hesaplayan programı kodlayınız. Kriter: Yilici=quiz1%10+quiz2%10+odev%10+vize%70 Başarı Notu: Yilici%50+Final%50 Algoritması Akış Şeması C/C++ dili kodlaması 1.Başla 2.Gir notları (q1,q2,od,v,f); 3.Hesapla Başarı Notunu ( Yilici=q1*0.1+q2*0.1+od*0.1+v*0.7; No=Yilici*0.5+f*0.5 ; ) 4. Eğer (Not>50) ise Yaz "gectiniz"; else Yaz "kaldınız"; Başla q1,q2,od,v,f Yilici=q1*0.1+q2*0.1+od*0.1+v*0.7; Not=Yilici*0.5+f*0.5; "kaldınız" Not >50 "gectiniz" #include<stdio.h> #include<conio.h> #include<math.h> int main() { unsigned int q1,q2,odev,vize,fin; float yilici, sonuc; printf ("Gir, q1-q2-odev-vize-final notlarını\n"); scanf("%d %d %d %d %d", &q1,&q2,&odev,&vize,&fin); yilici=q1*0.1+q2*0.1+odev*0.1+vize*0.7; sonuc= (float) yilici*0.5+fin*0.5; printf("basari Notunuz..:%g\n", round(sonuc)); printf ( (sonuc>=50)? "gectiniz": "kaldiniz"); getche(); } 5.Dur Dur Dr. Bülent ÇOBANOĞLU