close

Enter

Log in using OpenID

Bilgisayar Programlamaya Giriş

embedDownload
Bilgisayar
Programlamaya Giriş
Dersin Amacı


Karşılaştıkları problemleri bilgisayar
ortamında çözebilme becerisi
Algoritma analiz etme becerisi
Ders Konuları








Programlamaya giriş: C Dili
Veri tipleri
Ekran Giriş/Çıkış komutları
Program kontrol ifadeleri
Döngüler
Fonksiyonlar
Pointer’lar
Stringler
Kaynaklar

Ders Notları

C How TO Program,
Deitel & Deitel, 4th
edition.
Genel Kavramlar
TOC
Bilgisayarın Temel Birimleri
Bilgi Saklama
Bilgisayara İstediğimiz İşleri Nasıl Yaptırırız
C Programlama Dili Nedir?
C Programının Derlenmesi
Bilgisayar
Bilgisayar
Donanım
(Hardware)
Yazılım
(Software)
Bilgisayarın Temel Birimleri
Bilgisayarda Bilgilerin
Kodlanması


Bilgisayarda bilgiler, iki farklı durumun
belirlenmesi ile kodlanır.
Bu iki farklı durum:




Bir telden akım geçip geçmemesi,
Bir kartın delinip delinmemesi
Manyetik şerit üzerinde bir bölgenin N veya S kutup
Matematiksel olarak bu iki farklı durum
0(sıfır) ve 1 (bir) ile gösterilir.
Bilgi Saklama
Bir Bit Bilgi Saklama
Bir Bayt Bilgi Saklama
Bir bayt alanı içinde 256 (28) farklı bilginin saklanması mümkündür.
Bilgi Saklama
(101)2 = (1 x 22) + (0 x21) + (1 x 20)
(101)2 = (1 x 4) + (0 x 2) + (1 x 1) = (5)10
Bilgi Saklama
0
1
8
9
0
nul soh stx etx eot enq ack bel bs
ht
1
nl
ASCII
2
dc4 nak syn etb can em
sub esc fs
gs
3
rs
us
b
!
"
#
$
%
&
‘
Karakter
4
(
)
*
+
,
-
.
/
0
1
5
2
3
4
5
6
7
8
9
:
;
Seti
6
<
=
>
?
@
A
B
C
D
E
7
F
G
H
I
J
K
L
M
N
O
8
P
Q
R
S
T
U
V
W
X
Y
9
Z
[
\
]
^
_
`
a
b
c
10 d
e
f
g
h
i
j
k
l
m
11 n
o
p
q
r
s
t
u
v
w
12 x
y
z
{
|
}
~
del
vt
2
ff
3
cr
4
so
5
si
6
dle
7
dcl dc2 dc3
Problem çözme


Problem çözmede, soruna hemen girişmek
yerine, dikkatli ve sistematik yaklaşım ilke
olmalıdır.
Problem iyice anlaşılmalı ve mümkün olduğu
kadar küçük parçalara ayrılmalıdır.
“Discourse on Methods”
Descartes




Doğruluğu kesin olarak kanıtlanmadıkça, hiç birşeyi
doğru olarak kabul etmeyin; tahmin ve önyargılardan
kaçının
Karşılaştığınız her güçlüğü mümkün olduğu kadar
küçük parçalara bölün
Düzenli bir şekilde düşünün; anlaşılması en kolay
olan şeylerle başlayıp yavaş yavaş daha zor ve
karmaşık olanlara doğru ilerleyiniz
Olaya bakışınız çok genel, hazırladığınız ayrıntılı
liste ise hiçbir şeyi dışarıda bırakmayacak kadar
kusursuz ve eksiksiz olsun
Bilgisayara İstediğimiz İşlemleri
Nasıl Yaptırırız?

Algoritmalar:

Belirli bir görevi yerine getiren sonlu sayıdaki
işlemler dizisidir.
Her algoritma aşağıdaki
kriterleri sağlamalıdır.





1.Girdi: sıfır veya daha fazla değer dışarıdan
verilmelidir.
2. Çıktı: En azından bir değer üretmeli
3. Açıklık: Her işlem(komut) açık olmalı ve
farklı anlamlar içermemeli
4. Sonluluk: Her türlü olasılık için algoritma
sonlu adımda bitmeli
5. Etkinlik : Her komut kişinin kalem veya
kağıt ile yürütebileceği kadar basit olmalı
Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız?
Algoritma
Örnek: Telefon Etmek
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Başla
Ahizeyi kaldır
Sinyali kontrol et, sinyal yoksa arızaya haber ver ve 9. adım’a git
Eğer telefon numarası yurt dışında ise iki kere sıfır tuşuna bas ve
ülke ve alan kodunu tuşla, 6. adıma git
Eğer telefon numarası şehir dışında ise bir kere sıfır tuşuna bas ve
alan kodunu tuşla
Telefon numarasını tuşla
Eğer hat meşgul ise ya da cevap vermiyorsa 9. adıma git
Telefon konuşmasını gerçekleştir
Telefonu kapat
Bitiş
Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız?
Akış Şeması
Komut
Koşul
Veri
Doküman
A
Başla/Bitir
İşlem (Process): Yapılması istenen işlemle ilgili tanımlamalar
Karar (Decision): Bir karara bağlı olarak farklı yolların izlenmesi
Veri (Data): Her farklı veri grubu için farklı isim verilmelidir.
Doküman: Çıktı olarak gösterilmek istenen veriler ve işlemler
Bağlantı: Büyük yazılımlarda bir sonraki sayfadaki işlemlerin
hangi noktadan devam edeceğini göstermesi
Başla/Bitir: Akış şemasının başlangıç ve bitiş noktaları
Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız?
Başla
Örnek: Telefon
Etmek
Ahizeyi kaldır
Sinyal
var mı?
Hayır
Arızaya haber ver
Evet
Bir kere sıfıra
bas ve şehir
kodunu tuşla
Evet
Şehir
dışı mı?
Hayır
Yurt
dışı mı?
Evet
İki kere sıfıra
bas ve ülke , alan
kodunu tuşla
Hayır
Telefon
numarasını
tuşla
Telefon
konuşmasını
gerçekleştir
Hayır
Meşgul/ Evet
cevap yok?
Telefonu kapat
Bitir
Yazılım(Software)



İşletim Sistemi
(MS Windows xx, Unix, IBM –OS, etc)
Database Programları
(Oracle, Sybase, MS SQL Server, etc.)
Office programları
(Word, Excel, Powepoint)

Programlama dilleri
(QBasic, Fotran, Pascal, C, C++, .Net etc.)
Programlama Dilleri Tarihçesi
(Sembolik kodlar)
Assembly (makina kodu)
 FORTRAN (FORmula TRANslation –1954)

(matematiksel işlem ağırlıklı, bilgisayara bağımlılık
göstermeyen bilimsel çalışmalarda kullanılmak üzere)

COBOL (Common Business-Oriented Language)
(Bilgi depolamak ve işlemek)

Yüksek seviyeli diller (PL/I, Algol,
Pascal, Basic,...)
Dillerin Karşılaştırması

Düşük seviyeli Diller


Hızlıdır
Yüksek Seviyeli Diller




Kolay anlaşılır
Kolay yazılabilir
Her bilgisayarda uygulanabilir
Çok hızlı programlar yazmak mümkün olmamıştır
Programlama Dilleri Türleri



Sırasal diller (Q basic)
Yapısal Diller (pascal, C)
Nesne Yönelimli Diller (C++, Java, EIFELL,
.Net)
C’nin Kısa Öyküsü





1970 AT&T Bell Lab. Dennis M.Ritchie
B dili üzerine kurulu bir yapı
Unix işletim sisteminin yazımı için yaratıldı
Bell Lab., Akademik çevre, askeri proje
1975 yılından itibaren her yerde...
C’nin avantajları




C’de yazılan programlar Assembler’a göre daha
kısa zamanda yazılabilir, daha anlaşılabilir ve daha
hızlıdır
C derleyicileri sahip oldukları geniş fonksiyon
kütüphaneleri ve zengin işlemci grubu sayesinde
esnek bir yapıya sahiptir.
İfadelerden tasarruf sağlar:normal matematiksel
ifadeler, C’nin zengin operatörleri vasıtasıyla çok
daha kısa ve basit bir biçime getirilebilir.
Diğer sistemlere adapte edilebilen büyük
programlar hızlı bir şekilde kolayca yazılabildiği için
özellikle sistem programlamalarında tercih edilir.
C Programlama Dili Nedir?
Makine diliyle iki sayıyı toplamak:
01000011100011010000111000...
Assembly diliyle iki sayıyı toplamak:
LOAD X
ADD Y
STORE Z
• C derleyicisi bir çok farklı donanım üzerinde çalışabilir.
• C ile sistem üzerinde en alt düzeydeki fonksiyonlara erişilebilir
• C ile yazılmış olan programlar oldukça hızlı çalışabilmektedir.
C Programının Derlenmesi
Programın yazılması
Yazım kuralları kontrolü
Ön işlemcinin çalışması ve programın derlenmesi
Programın kütüphaneden kullanılan fonksiyonlar ile
bağlanması (Birleştirme)
5. Çalışabilen program kodunun elde edilmesi
6. Programın çalıştırılması
1.
2.
3.
4.
• C Programın fazları:
1. Edit
2. Preprocess
Editor
Preprocessor
Compiler
3. Compile
Linker
4. Link
Loader
5. Load
Disk
6. Execute
Program editör yazılır
ve harddiskte saklanır
Dis
k
Önişlemci
kodu işler
Dis
k
program
Compiler object code
yaratır ve hardiskte
saklar
Dis
k
Dis
Primary k
Memory
Linker object
code libraries’e linkler
Loader
programı
memori’ye yükler.
..
..
..
Primary Memory
CPU
..
..
..
CPU her bir
Instruction’ı alır ve
execute eder
C Programının Derlenmesi
C’nin Program Yapısı
Preprocessor Direktifleri
Global değişken bildirileri
Fonksiyon Prototipleri
Fonksiyon tanımlamaları
main()
{
Programın başlangıcı
İfade_1;
İfade_2;
İfade_3;
İfade Bloğu
:
.
İfade_N;
(Programın ana gövdesi)
}
Programın sonu
C Dilinin Temelleri
Genel Kavramlar
Yazım ve Noktalama Kuralları
C Kütüphaneleri
C Dilindeki Sözcükler
Değer Sabitleri
Veri Tipleri
Değişkenler
Genel Kavramlar
Ana Fonksiyon: main( )
int main(void)
{
program_komutları
return(0);
}
Genel Kavramlar
return(
): Fonksiyonun çağrıldığı yere geri

dönmesini sağlar. main( ) fonksiyonu içinde
kullanılan
return()
komutu
programın
sonlandırılarak işletim sistemine geri dönülmesini
sağlar.
Genel Kavramlar
Örnek Program
#include <stdio.h>
int main (void)
{
printf("Merhaba Dunya");
return(0);
}
Çıktı:
Çıktı:
Genel Kavramlar
printf(): çıktı fonksiyonu ekrana çeşitli çıktıların yazılması
printf(“format_dizgisi”);
Bu fonksiyonun programımız tarafından kullanılması için
<stdio.h>
kütüphanesinin
program
başında
tanımlanması gerekir.
#include <stdio.h>
Genel Kavramlar
Örnek Program
Ekranda “Bu benim ilk programim.” cümlesini görüntüleyecek
programı yazınız.
#include <stdio.h>
int main(void)
{
printf(“Bu benim ilk programim. “);
return(0);
}
Çıktı:
Bu benim ilk programim.
Yazım ve Noktalama Kuralları
Noktalı Virgül: Her komutun bittiği yer ‘;’
işareti ile belirtilir.
Ayraç İşaretleri: C dili bloklardan oluşur.
Bloklar ‘{‘ ve ‘}’ ayraç işaretleri içinde
belirtilen komutların bir araya gelmesi ile
oluşur.
Açıklama Satırları: Program içindeki
açıklamanın başlangıç ve bitiş noktaları
“/*” ve “*/” işaretleri ile belirlenmelidir.
#include <stdio.h>
int main(void)
{
printf(“Ilk program“);
return(0);
}
Yazım ve Noktalama Kuralları
include <stdio.h>
int main (void)
{
/*Bu program bilgisayarinizin ekranina
Merhaba Dunya kelimelerini yazar.*/
printf(“Merhaba Dunya”);
return(0);
/*Burasi programin sonudur*/
}
Yazım ve Noktalama Kuralları
 Bir bloğu oluşturan tüm
komutlar ve açıklama
satırları ayraç işaretlerine
göre daha içeride yazılır.
 Böylece
blokların
birbirinden ayrılması ve
yazılan program kodunun
daha anlaşılır bir hale
gelmesi sağlanır.
include <stdio.h>
int main (void)
{
/*Bu program ekrana
Merhaba kelimesini
yazar.*/
printf(“Merhaba”);
return(0);
/*Burasi programin
sonudur*/
}
C Kütüphaneleri
 Yapılan işin özelliğine göre programa dahil edilir.
 Kodu daha önce yazılmış, programcının
kullanımına hazır fonksiyonları içerir.
 Bu fonksiyonların her defasında tekrar tekrar
yazılması engellenmiş olur ve daha standart bir
yapıda yaygın olarak kullanımı sağlanır.
Standart girdi/çıktı:
Matematiksel işlemler:
Dizgiler:
<stdio.h>
<math.h>
<string.h>

c kütüphaneleri
<STDIO.H>
clearerr Reset error indicators.error sinyallerini resetler
fclose Close a stream.yazdiginiz streami kapar
feof Check if End Of File has been reached.dosyanin sonunu kontrol eder
ferror Check for errors.erorleri kontrol eder
fflush Flush a stream.streami duzenler
fgetc Get next character from a stream.stream'de bir sonraki karakteri alir
fgetpos Get position in a stream.stream'in pozisyonunu alir
fgets Get string from a stream.stream'den diziyi alir
fopen Open a file.dosya acar
fprintf Print formatted data to a stream.stream'in icindekileri yazdirir
fputc Write character to a stream.streamin icine bir nesne girmenizi saglar
fputchar Write character to stdout.karakter yazar
fputs Write string to a stream.dizi yazar stream'e
fread Read block of data from a stream.stream'deki bilgileri okur
freopen Reopen a file using a different file mode.farkli modda dosya acar
fscanf Read formatted data from a stream.streamdeki bilgileri okur
fseek Reposition stream's position indicator.streamin pozisyonunu tekrar
belirler
fsetpos Reposition file pointer to a saved location.streamin gosterdigi yerin
pozisyonunu tekrar yapar we kaydeder
ftell Return the current position of the file pointer.eski gosterdigi yere geri
doner
fwrite Write block of data to a stream.bilgileri yazmanizi saglar streame
getc Get the next character.bir sonraki karakteri alir
getchar Get the next character from stdin.stdin de bir sonraki karakteri
alir
gets Get a string from stdin.stdin'den diziyi alir
getw Get the next int value from a stream.streamde degeri int olan
nesneyi alir
perror Print error message.eror msj ini ekrana yazar
printf Print formatted data to stdout.outputu yazar
putc Write character to a stream.stream e karakter yazar
putchar Write character to stdout.outputu yazar
puts Write a string to stdout.dizi yazar
putw Write an integer to a stream.integet=tamsayi yi streame yazar
remove Delete a file.dosyayi siler
rename Rename a file or directory.dosyaya yeni isim verir
rewind Reposition file pointer to the beginning of a stream.streami ilk
gosterdigi yere geri dondurur
scanf Read formatted data from stdin.girdiginiz herhangi birseyi okur
setbuf Change stream buffering.
setvbuf Change stream buffering.tampon deistirir
sprintf Format data to a string.dizinin formatini yazar
sscanf Read formatted data from a string.dizinyi formatina gore okur
tmpfile Open a temporary file.temp file i acar
tmpnam Generate a unique temporary filename.tek dosya ismi uretir
ungetc Push a character back into stream.karakteri streamin icine geri
alir

<STDLIB.H>
abort Abort current process returning error codeislemden cikar
abs Return absolute value of integer parametertmsayinin mutlak degeriyle doner
atexit Specifies a function to be executed at exitozellesmis fonksiyonu calistiri we cikar
atof Convert string to doublestringi double a cevirir
atoi Convert string to integerintegera cevirir
atol Convert string to longlong a cevirir
bsearch Binary search
calloc Allocate array in memoryhafizada yer acar
div Divide two integer values
ecvt Convert floating point value to string
exit Terminate calling processprogramdan cikar
fcvt Convert floating point value to string
free Deallocate dynamically allocated memoryhafizayi siler
gcvt Convert floating point value to stringnesneyi deisken bir strnge cevirir
getenv Get string from environmentortamdan strng alir
itoa Convert integer to stringdiziyi tamsayiya cevirir
labs Return absolute value of long integer parametermutlak deger tamsayiylar geri doner
ldiv Divide two long integer values2 tamsayiyi boler
lfind Linear search
lsearch Linear search
ltoa Convert long integer value to stringdiziyi long integera cevirir
malloc Allocate memory blockhafizada yer acar
max Return the greater of two parametersmaximum degerle geri doner
min Return the smaller of two parametersminimum degerle geri doner
putenv Create or modify environment variableyeni bir variable yaratir
qsort Sort using quicksort algorithmsort sralama yapar
rand Generate random numberkafadan sayi uretir
realloc Reallocate memory blockhafizada istediginiz sekilde yer acar
srand Initialize random number generatorkafadan uretilen sayiya deger werir
strtod Convert string to double-precision floating-point value
strtol Convert string to long integerdiziyi integer a cevirir
strtoul Convert string to unsigned long integer
swab Swap bytes
system Execute commandkodu calistirir
ultoa Convert unsigned long integer to string

<STRING.H>
memchr Search buffer for a charactertamponu karaktere gore arar
memcmp Compare two buffersiki tamponu karsilastirir
memcpy Copy bytes to buffer from buffertamponun boyutunu dierine kopylar
memmove Copy bytes to buffer from buffertamponun boyutunu dierine geciri
memset Fill buffer with specified charactertamponu ozel karakterlerle doldurur
strcat Append stringdizi ekler
strchr Find character in stringdiziden istediginiz karakteri bulur
strcmp Compare two stringsiki diziyi karsilastirir
strcoll Compare two strings using locale settingsiki diziyi yerel ayarlarla karsilastirir
strcpy Copy stringdizi kopyalar
strcspn Search string for occurrence of charcter setdizinin karakter kumesini werdiginiz occurrence e
gore arar
strerror Get pointer to error message stringdizinin error msj ini gosterir
strlen Return string lengthdizinin uzunlugunu bulur
strncat Append substring to stringwerilen biseyi dizinin sonuna ekler
strncmp Compare some characters of two stringsdizinin istediginiz yere kadar olan yerlerini karsilastirir
strncpy Copy characters from one string to anotherbir diziyi dierine kopylar
strpbrk Scan string for specified charactersdizinn ozel karakterlerini scan eder
strrchr Find last occurrence of character in stringdizideki son elemani bulur
strspn Get length of substring composed of given characterskarsilastirilan iki karakterin boyutunu alir
strstr Find substringaltdiziyi bulur
strtok Sequentially truncate string if delimiter is found
strxfrm Transform string using locale settings
<TIME.H>
asctime Convert tm structure to stringdiziyi tm ye cevirir
clock Return number of clock ticks since process startislemin basladigi ana geri doner
ctime Convert time_t value to stringdiziyi time_t degerine cevirir
difftime Return difference between two timesiki zmn arasindaki farki alir we bununla geri doner
gmtime Convert time_t value to tm structure as UTC timeUTC time tipindeki yapiyi time_t degerine cevirir
localtime Convert time_t value to tm structure as local time
mktime Convert tm structure to time_t valuetm yapisini time_t degerine cevirir
time Get current timesimdiki zmni alir

MATH.H
abs Return absolute value of integer parametertamsayinin mutlagiyla geri doner
acos Calculate arccosinecosinusun arc ini esaplar
asin Calculate arcsinesinusun arc ini hesaplar
atan Calculate arctangenttanjantin arc ini hesaplar
atan2 Calculate arctangent, 2 parameters2 parametrenin arc tanjantini hesaplar
atof Convert string to doublediziyi double a cevirir
ceil Return the smallest integer that is greater or equal to xen kucuk tamsayiyla geri
doner bu x(verilen sayiya) esit yada byuk olmali
cos Calculate cosinecosinus hesaplar
cosh Calculate hyperbolic cosinecosinusun parabolunu hesapar
exp Calculate exponentialussunu hesaplar
fabs Return absolute value of floating-pointdeiskenin mutlak degeriyle geri doner
floor Round down valueen alt sewiyedeki degerle geri doner
fmod Return remainder of floating point divisiondeisken bolumundn kalan sayiyla geri
doner
frexp Get mantissa and exponent of floating-point value
labs Return absolute value of long integer parametertamsayinin mutlak degeriyle geri
doner
ldexp Get floating-point value from mantissa and exponent
log Calculate natural logarithmdogal logaritma hesaplar
log10 Calculate logarithm base 1010 tabanindaki logaritmayi hesaplar
modf Spli floating-point value into fractional and integer parts
pow Calculate numeric powersayisal ussunu hesaplar
sin Calculate sinesinus hesaplar
sinh Calculate hyperbolic sinesinusun parabolunu hesaplar
sqrt Calculate square rootkarekok hesaplar
tan Calculate tangenttanjant hesaplar
tanh Calculate hyperbolic tangenttanjantin parabolunu hesaplar
C Dilindeki Sözcükler
Özel amaçlı sözcükler
Tanıtıcı isimleri (değişken)
Tanıtıcı isimleri (fonksiyon)
C Dilindeki Sözcükler
Özel Amaçlı Sözcükler
C Dilindeki Sözcükler
Tanıtıcılar: Özel amaçlı sözcüklerin dışında yapılan
tanımlamalardır. Tanıtıcı isimleri
 içinde harf (a ..z, A.. Z), sayı (0..9) veya alt çizgi
(underscore ‘_’) bulunabilir.
 bir harf ya da alt çizgi ‘_’ işareti ile başlamalıdır.
 içinde özel karakterler ( #, $, &, ö, ş “ v.b. ) bulunamaz.
 C dilindeki özel amaçlı sözcüklerden biri olamaz.
 büyük-küçük harfler farklı (case-sensitive) algılanır.
Örnek: ogrenci_yasi
_06_yili_ucreti
ucret
Short
Değer Sabitleri
Tamsayılar: 0-9 rakamlarından oluşan, ondalık değerleri olmayan
sayılardır. Örnek: 3 5
Reel Sayılar: tam ve ondalık kısımları olan sabitlerdir.
Örnek: 5.7 4.2
Karakterler: tek tırnak işareti arasında bulunur.
Örnek: ‘A’ ‘k’
Dizgiler: Çift tırnak işareti “ ” ile tanımlanırlar ve birden fazla
karakterin bir araya gelmesinden oluşurlar.
Örnek: “Merhaba” “2” “aa12aa”
Veri Tipleri
Değişkenler
 Program içinde kullanılan temel nesnelerdir.
 Farklı tipteki verilerin (int, double, char) bellekte tutulması için
kullanılır.
 Bu isimler ile bellek hücrelerine veri aktarabilir ve bu hücrelerde
saklanan veriler program içinde kullanılabilir.
toplam
Bellek görüntüsü
Örnek:
char cinsiyet;
double maas;
int x,y;
Başka bir basit program: İki
tamsayının toplanması
#include <stdio.h>
main()
{
int sayi1, sayi2, topla;
printf("İlk tamsayıyı giriniz\n");
scanf("%d",&sayi1);
printf("İkinci tamsayıyı giriniz\n");
scanf("%d",&sayi2);
topla=sayi1+sayi2;
printf("Toplam = %d\n",topla);
return 0;
}
Değişken Kavramı

Bilginin bellekte belli bir adresten başlıyarak
belli bir uzunluğu işgal etmesi, bilginin
varlığını gösterir ve bu bilginin
isimlendirilmesine değişken denir
Değişken tanımlama
veri_tipi <değişken_adı>;
örneğin:
int x;
char ch, ch1;
float y;
C’de tanımlı Veri Tipleri
Tip
Aralık
Uzunluk
(byte)
unsigned char
0..255
1
char
-128…127
1
int
-32768…32767
2
short int
-32768…32767
2
unsigned int
0…65535
2
unsigned long
0…4,294,967,295
4
long
-2147483648.. 2147483647
4
float
3.4*10-38.. 3.4*10+38
4
double
1.7*10-308.. 1.7*10+308
8
long double
3.4*10-4932.. 1.1*10+4932
10
printf
ÇIKIŞ Fonksiyonu
Printf (Format Stringi, Değer Listesi);
 Çıkış Format Stringi: “ ”



Açıklama kısımları
Çıkış formatının belirtildiği kısımlar: %
Escape düzeninin verildiği kısımlar: \
Çıkış format karakterleri
Nümerik Değerler için
Tip karakterleri
Çıkış biçimi
Karakterler için
Tip karakterleri
Çıkış biçimi
d
İşaretli tamsayı
c
Tek
karakter
i
İşaretli tamsayı
s
string
u
İşaretsiz tamsayı
%
% karakteri
f
Gerçel sayı
e
Üssel gerçel sayı
ld
Long tamsayı
lf
Double gerçel
sayı
ESCAPE Düzeni Karakterleri
\n
Kursoru bir alt satırın başına getirir (yeni satır-new line)
\r
Kursoru satırın başına getirir (carriage return)
\b
Kursoru bir kolon geri çeker
\a
Zil sesi verir
\t
Yatay tab
\v
Printer için yeni satır başı
\f
Printer için yeni sayfa başı
\0
NULL karakteri
\\
Sadece \ karakteri
\”
Sadece “ karakteri
scanf
Giriş Fonksiyonu
Scanf (Format Stringi, Adres stringi)
scanf (“%d”, &a);
scanf(“%d %d”, &x,&y);
scanf(“%s %s”, ad, soyad);
// scanf IeBirdenFazlaVeriOkumak.c
#include <stdio.h>
int main() {
int sayim1, sayim2, sayim3;
printf("lutfen 3 tamsayi giriniz:");
scanf("%d%d%d",&sayim1, &sayim2, &sayim3);
printf("\nbugun %d kere guldum, %d kere costum ve %d kere
kere somurttum!",sayim1, sayim2, sayim3);
return 0;
}
Giriş Format Karakterleri
Tip karakterleri
Çıkış biçimi
d
İşaretli tamsayı
D
Long işaretli
tamsayı
u
İşaretsiz tamsayı
U
Long işaretsiz
tamsayı
e
Üssel gerçel sayı
f
Gerçel sayı
lf
Double gerçel sayı
c
Karakter
s
String
Operatörler

Operatörler belli bir amaca yönelik olarak bir bilgiyi
daha değişik bir forma sokan veya iki bilgiden yeni
bir bilgi edinilmesini sağlayan sembolik araçlardır.








Atama Operatörü (=)
Aritmetik operatörler (*, /, +,-,%,++,--)
Karşılaştırma operatörlerin (>,<,>=,<=,==,!=)
Mantık Operatörleri (&&, ||,!)
Adres operatörü (&)
Boyut operatörü (sizeof)
Üçlü koşul operatörü (?:)
Ve diğer operatörler
Atama Operatörü


Bir değeri bellekteki bir değişkene atamak için eşit (=)
karakteri kullanılır.
Bu sembol sağındaki değeri solundaki değişkene atar.
int x;
int y=8; /*ilk değer ataması*/
main()
{x=10;
y=x;
t=5; /*yanlış: t değişkeni tanımlanmadı */
}
Aritmetik işlem operatörleri

C’de tamsayılar ve gerçel
sayıların işlenmesi için
gerekli tüm operatörler
mevcuttur.

İkili Operatörler






Toplama operatörü (+)
Çıkartma operatörü (-)
Çarpma operatörü (*)
Bölme operatörü (/)
Mod operatörü (%)
Tekli (Unary) Operatörler


Arttırma operatörü (++)
Eksiltme operatörü (--)
Birleşik Atama operatörleri
Basit hali
Kısatılmış hali
x=x+y
x+=y
x=x-y
x-=y
x=x*y
x*=y
x=x/y
x/=y
x=x%y
x%=y

Operatorlerin Kullanımı
1- x=10
y=5
z=x++%4*--y
z=8
2- y=5
x=!++y<5!=8
x=1
3- c=20
d=10
a=b=d+c-b=30 a=30 c=19
4-
a=20
b=10
y=a+b>=20 II a-b <=10
30 >=20 =1
y=1
5- a=!25
b=10*3<7+!2
b=0
1 //matematikselOperatorler.c
2
3 # include <stdio.h>
4
5 int main() {
6 int a=4;
7 int b=7;
8 int c=9;
9
10
a = a + 1;
11 a++;
12
13 ++b;
14 c--;
15
16 a = b++;
17 a = ++b;
18
19 c = ++a;
20 c = b--;
21 c= --b;
22
23 printf("a: %d\n",a);
24 printf("b: %d\n",b);
25 printf("c: %d\n",c);
26 printf("a mod b: %d\n",a%b);
27 printf("b mod c: %d\n",b%c);
28
29 return 0;
30 }
1 //matematikselOperatorler.c
2
3 # include <stdio.h>
4
5 int main() {
6 int a=4;
7 int b=7;
8 int c=9;
9
10 a = a + 1; // a= 5
11 a++; // a=6
12
13 ++b; // b=8
14 c--; // c=8
15
16 a = b++; // a=8, b=9
17 a = ++b; // a=10, b=10
18
19 c = ++a; // a=11, c=11
20 c = b--; // b=9, c=10
21 c= --b; // b=8, c=8
22
23 printf("a: %d\n",a); // a=11
24 printf("b: %d\n",b); // b=8
25 printf("c: %d\n",c); // c=8
26 printf("a mod b: %d\n",a%b) // 3
27 printf("b mod c: %d\n",b%c) // 0
28
29 return 0;
30 }
Karşılaştırma operatörleri

Karşılaştırma sonucunun doğru veya yanlış
olmasına dayanan bir sonuç üretir.


Yanlış ise 0 (sıfır)
Doğru ise 1 (Bir)
Örnek : a=2, b=10 ve c=5 ise
a>b
koşulu
a>=2
koşulu
b!=c
koşulu
10==b
koşulu
c<=4
koşulu
‘a’ > ‘b’ koşulu
0
1
1
1
0
0
(Yanlış)
(Doğru)
(Doğru)
(Doğru)
(Yanlış)
(yanlış)
Mantıksal Operatörler



AND operatörü (&&)
OR operatörü (||)
Not operatörü (!)
sizeof
Boyut Operatörü
Verilen bir tipin veya değerin hafızada işgal ettiği
bölgenin bayt olarak sayısını verir.
Kullanımı: sizeof(tip)
cevap
sizeof(char)
1
sizeof(int)
2
sizeof(float)
4
sizeof(double)
8
int x;
sizeof(x)
2

Üçlü Koşul(Ternary)
Operatörü(?:)
Üçlü koşul operatörü(?:), bir ifadenin doğru
veya yanlış olmasına göre farklı ifadelerin
yerine getirilmesini sağlar.
ifade1 ?ifade2 : ifade3
Örnek: z=max(x,y)
z=(x>y) ? x : y;

Operatörlerde işlem önceliği
ve işlem yönü
Soru1: 5x2+2 fonksiyonun x=4.8 noktasındaki
değerini hesaplayınız.
#include <stdio.h>
main()
{float x, y;
x=4.8;
y=5*x*x+2;
printf(“y=%f”,y);
}
Soru 3: Vize ve Final notlarından geçme
notunu hesaplayınız
#include <stdio.h>
main()
{float vize, final, ortalama;
vize=60;
final=70;
ortalama=vize*0.60+final*0.40;
printf(“ogrenci %f ile gecti\n”,ortalama);
}
Author
Document
Category
Uncategorized
Views
0
File Size
1 676 KB
Tags
1/--pages
Report inappropriate content