2. HAFTA
2. Hafta
1
printf() içerisinde kullanılan
özel karakterlerin anlamı: % ve \
%d, %i
%c
%s
%f
:Tamsayı yazdırma
:Karakter yazdırma
:Metin yazdırma
:Reel sayı yazdırma
float, double
%o
:Sekizlik sayı yazdırma
%x, %X
:Hex sayı yazdırma
%u
:İşaretsiz tamsayı
%hd
:Short tamsayı
%e, %E :Üslü reel sayı yazdırma
%g, %G :Üslü veya reel
%p
:Adres (4 veya 8 rakam)
%ld, %li, %lu, %lx, %lo: Long tamsayı
%Lf, %Le :Long double
2. Hafta
\a
\b
\f
\n
\r
\t
\v
\\
\?
\’
\”
:bip
:geri silme
:ileri sarma (yazıcı)
:Sonraki satır başına git
:Sonraki satır başına git
:Yatay sekme (tab)
:Dikey sekme
:Ters bölü karakteri
:Soru işareti karakteri
:Tek tırnak karakteri
: Çift tırnak karakteri
2
printf() fonksiyonu kullanımı
Sayısal değerler yazdırmak için:
printf(“a değişkeni=%d”,a); //tamsayı
printf(“b değişkeni=%f”,b); //reel
Karakter ve metin yazdırmak için:
printf(“c değişkeni=%c”,c); //karakter
printf(“cümle=%s”,cumle); //metin
2. Hafta
3
Çıktıların Biçimlendirilmesi
Tanımlama:
float reel=1.23456789;
Virgülden sonra 2 basamak yazdırılması:
printf(“%.2f”,reel);
//C
cout.precision(2);
cout<<reel;
2. Hafta
//C++
4
Klavyeden Giriş

scanf()
scanf(“%d”, &tamsayi); //tipe ait format hatırlanmalı
scanf(“%c”,&karakter);
scanf(“%s”, karakter_dizisi);

cin
cin>>tamsayi; //tipe ait formatın hatırlanması gerekmez
cin>>reel;
cin>>karakter_dizisi;
2. Hafta
5
Aritmetik İşleçler (operators)
C++ İşlemi
Aritmetik İşleç
Mat. Gösterim
C++
Toplama
+
a+b
a+b
Çıkarma
-
a-b
a-b
Çarpma
*
ab
a*b
Bölme
/
a/b veya
a
a/b
b
Mod
2. Hafta
%
a mod b
a%b
6
Aritmetik Özel İşleçler
İşleç
C++ Kullanımı
Anlamı
+=
-=
*=
/=
++
--
a+=3;
a-=3;
a*=3;
a/=3;
a++; veya ++a;
a--; veya --a;
a=a+3;
a=a-3;
a=a*3;
a=a/3;
a=a+1;
a=a-1;
2. Hafta
7
İlişkisel İşleçler
İşleç
==
!=
>
<
>=
<=
2. Hafta
Kullanımı
a==b
a!=b
a>b
a<b
a>=b
a<=b
Anlamı
a, b’ye eşit mi?
a, b’den farklı mı?
a, b’den büyük mü?
a, b’den küçük mü?
a, b’den büyük eşit mi?
a, b’den küçük eşit mi?
8
Mantıksal ve Bitsel İşleçler
İşleç
Kullanımı
Anlamı
Açıklama
a ve b
Sonuç DOĞRU(1) veya YANLIŞ
(0) tır
&&
a&&b
||
a||b
a veya b
Sonuç DOĞRU(1) veya YANLIŞ
(0) tır
!
!a
a DEĞİL
a’nın mantıksal değili alınır
&
a&b
a AND b
Her iki değer bitsel VE yapılır
|
a|b
a OR b
Her iki değer bitsel VEYA yapılır
~
~a
NOT a
a’nın tüm bitleri terslenir
^
a^b
a XOR b
Her iki değer bitsel XOR yapılır
2. Hafta
9
İşleç Öncelikleri
İşleçler
Yön
İşleç Grubu
()
soldan sağa
parantez
++ --
sağdan sola
tekli
*/%
soldan sağa
çoklu çarpma
+ -
soldan sağa
çoklu toplama
< <= > >=
soldan sağa
ilişkisel
== !=
soldan sağa
eşitlik
&&
soldan sağa
ilişkisel
||
soldan sağa
ilişkisel
= += -= *= /= %=
sağdan sola
atama
2. Hafta
10
İşleç Öncelikleri

Matematiksel ifade
x=a.b/c + d.e%f - g

C ++’ta ifade edilmesi
x
= a
*
1
2. Hafta
b / c
2
+
4
d
*
1
e
% f
3
- g
5
11
Örnek 1
#include <iostream.h>
// dışardan girilen iki sayının toplamını alan program
using namespace std;
int main()
{
int sayi1, sayi2, toplam=0;
endl bir alt satıra geç
cout << "iki sayiyi giriniz: ";
cin >> sayi1 >> sayi2;
toplam=sayi1+sayi2;
cout << "islemin sonucu:" <<endl<< toplam<<endl;
system("pause");
Programın çalıştığının görülmesi için
return 0;
}
1. Hafta
12
setw sabiti (Manipulator)
setw(değer) // belirtilen değer kadar ekranda yer açar. Tablo
şeklinde görüntüler oluşturmak için kullanılır

setw neden ihtiyaç duyulur
#include <iostream>
#include <iostream>
#include <iomanip>
using namespace std;
using namespace std;
int main()
int main()
// for setw
{
{
long A=1234567, B=123, C=2345;
long A=1234567, B=123, C=2345;
cout << "A" << A << endl
cout << setw(4)<<"A"<<setw(10)<< A << endl
<< "B" << B << endl
<< setw(4)<<"B"<<setw(10)<< B << endl
<< "C" << C << endl;
<< setw(4)<<"C"<<setw(10)<< C << endl;
system ("pause");
system ("pause");
return 0;
return 0;
}
}
1. Hafta
13
Sabit Tanımlamaları

Tüm program boyunca aynı kalan ve
değiştirilmesi mümkün olmayan değişken veya
tanımlamalardır.

#define pi 3.14
 #define OCAK 1
 #define uyarı “İkaz var”

const float g=9.81;
 const int x=5;
2. Hafta
14
Karşılaştırma ve Karar verme Komutları
Komut:
Yanlış
Doğru
ifade
if-else
Kullanım:
İşlem 2
İşlem 1
if (ifade)
işlemler;
else
işlemler;
Örnek:
if (not>=50)
cout<<“Tebrikler Geçtiniz”;
else
printf(“Üzgünüm seneye görüşmek üzere”);
2. Hafta
15
if-else yapıları-1
Tek komutlu if yapıları:
if(x>3)
x++;
Çok komutlu if yapıları:
if(x>3)
{
x++;
y---;
}
2. Hafta
16
if-else özel yapıları
 Kullanılmaları
tavsiye edilmeyen ancak
geçerli olan if yapıları
if(0)
:Her zaman YANLIŞ (false)
if(10)
:Her zaman DOĞRU (true)
if(-10)
:Her zaman DOĞRU (true)
if (a)
: a sıfır ise false, diğer tüm
durumlarda true
2. Hafta
17
if-elseif-else yapısı
if(not<50)
cout<<“FF aldınız”;
else if(not>=50 && not<=60)
cout<<“DD aldınız”;
else if(not>60 && not<=75)
cout<<“CC aldınız”;
else if(not>75 && not<=90)
cout<<“BB aldınız”;
else
cout<<“AA aldınız”;
2. Hafta
18
Kısa if-else komutu
?:
a>2 ? printf(“2 den büyük") : printf(“2 den küçük");
Doğru (true) durum işlemi
if
Yanlış(false) durum işlemi
else
printf () fonksiyonu ile kullanımı:
printf(“%s”,a>3? ”Doğru” : ”Yanlış”);
2. Hafta
19
Örnek 2 – if/else
#include <iostream>
using namespace std;
int main() {
char tus;
cout << "Bir tusa basiniz ";
cin >> tus;
ekranı temizler
if( tus == 'a')
{
system("cls");
cout << "a tusuna bastiniz " ;
\t
}
else
{
cout << "hatali tus"<<'\t'<<tus<<"\t"<<"bastiniz";
}
system("pause");
return 0;
}
2. Hafta
bir tab boşluk verir
20
Çoklu Dallanma
switch-case
switch(dallanma değişkeni){
case n0:işlemler;break;
case n1:işlemler;break;
………
case nn:işlemler;break;
default:işlemler;
}


Dallanma değişkeni: tamsayı, karakter olabilir, belirli bir
aralık olamaz. O an değeri belli olmalıdır.
Switch-case yapısı if-else if-else yapısı ile de
gerçekleştirilebilir.
2. Hafta
21
switch-case örneği
Tamsayılı değişkenli:
Karakter değişkenli:
int ay=OCAK;
switch(ay){
case OCAK: fonk1();break;
case SUBAT:fonk2();break;
case MART:
case NISAN:
case MAYIS:fonk3();break;
case HAZIRAN:fonk4();break;
default: fonk5();break;
}
char harf=‘a’;
switch(harf){
case ‘a’: not=not+30;break;
case ‘b’: case ‘c’:
case ‘d’: not=not+10;break;
case ‘e’: not=not-20;
default: cout<<“Geçersiz durum”;
}
2. Hafta
22
Örnek 3 – switch-case
// dört işlem hesap makinası
#include <iostream>
using namespace std;
int main()
{
double sayi1, sayi2, sonuc;
char islem;
cout << " ilk sayi, islem, ikinci sayi: ";
cin >> sayi1 >> islem >> sayi2;
switch(islem)
{
case '+': sonuc = sayi1 + sayi2; break;
case '-‘ : sonuc = sayi1 - sayi2; break;
case '*‘ : sonuc = sayi1 * sayi2; break;
case '/‘ : sonuc = sayi1 / sayi2; break;
default: sonuc = 0;
}
cout << "sonuc = " << sonuc;
system ("pause");
return 0;
}
2. Hafta
23
Çalışma Soruları-1

Soru-1: Sakarya Üniversitesi’nin uyguladığı not sistemi baz alınarak, yüzlük
üzerinden dışarıdan girilen değere karşılık gelen harfli notu bildiren programı yazınız.
100 den büyük ve sıfırdan küçük değerlerde hata mesajı verecektir.

Soru-2: Dışarıdan girilen ay ismine karşılık gelen sıra numarası veren programı ifelse yapısı kullanarak yazınız.

Soru-3: Dışarıdan girilen farklı 3 tamsayının toplamını, çarpımını, en küçüğünü ve en
büyüğünü bildiren programı yazınız.

Soru-4: Dışarıdan girilen sayıların tek veya çift olduğunu bildiren programı
tasarlayınız.

Soru-5: Girilen dereceyi fahrenayta veya fahrenaytı dereceye çeviren programı
tasarlayınız. Çevirimin hangi birimden hangi birime olacağı program başında
sorulmalıdır.
2. Hafta
24
Download

a>2 - Sakarya Üniversitesi