Şimdi.Elinde builder bulunan arkadaşlar.Şu işlem sırasını izleyelim:
File>New>Console Wizard>WindowType Bölümüne(Console)Execution Type Bölünde(EXE)seçin ve oluşan unit.1cpp adlı
dosyanın içini külliyen silin:)(Builder 3 için)Buraya kodlarımızı yazacağız.
Builder 6 için ise: File>New>Other>Console Wizard>SourceType>C.Builder olmayan arkadaşlar compiler ın adnı yazın.Yanlız hiç birinize dev c++ onermiyorum.
Dersimize başlayalım.Aslıdan derslerimize Program Kontrol İfadeleri ile başlayacaktık ancak, 0 dan başlayan
arkadaşlarımız varmış.O yüzden bizde 0 dan başlayalım:)Şu kodları yazalım:
#include
main(){
printf("Merhaba");
return 0;
}
Bu program compile edildiğinde ekrana merhaba yazısını verir.
Yukarıdaki kodları sırasıyla inceleyelim şimdi:
#include
girdi-çıktıların komutlarını içerisinde bulundurur.Zaten stdio açılımı standart input outputtur.printf bir outputtur.Programın başına
yazmadığımız sürece printf fonksyonu tanınmaz.Çünkü printf stdio.h içerisinde tanımlıdır.Her kütüphane dosyası içerisinde
farklı farklı fonksyonlar tanımlıdır.Yani kütüphane dosyaları her zaman karşımıza çıkacaktır.İlerde değişik fonksyonlara göre
farklı kütüphane dostlarıyla tanışacağız.Buradaki mantık anlaşılmıştır sanırım:)
İkinci satırdaki main() ise içine tüm fonksyonlarımızı yazacağımız bölümüdr.main i herzaman kullanacağız.main() yazdıktan
sonra
komutları açıp kapamış olduğumuz {} parantezleri içine yazacağız.Yani;
main()
{
Kodlarımız
}
şeklinde olacak.Ve geldik 3.satırdaki printf'e:Printf bunlar input output komutlardır.Bunları çook geniş olark anlatacam.Printf
ekrana çıktı vermek için kullanacağımız output tipinde tanımlı bir fonksyonudur
return 0 ise programın çıktısı olup olmadığını kontrol eder.Yanlız biz builder kullanıyoruz yani programlarımızın sonuna
return 0 ibaresini eklemzsek bir problem oluşmaz.Onemli bir nokta ise c de her fonksyondan sonra ";" işareti konmasıdır.
Her fonksyon sonunda muhakkak bulunur.Dikkat etmenizi istediğim diğer bir noktaysa c de büyük küçük har ayırımı vardır.
Eğer siz printf yerine Printf yazarsanız compiler hata verir.Ona göre:)))
Evet bu kodları yazdıktan sonra geldik compile olayına.Builder kullanan arkadaşlarımız once kodları yazdıkları unit1.cpp adlı
dosyamızı bir klasöre kaydetsinler.Ardından F9 tuşuna bastıkmı alın compile oldu işte exe dosyamız uniti kaydettiğimiz yerde
olacaktır.Ms-Dos komut sisteminden dosyayı kadettiğimiz dizine ulaşalım ve exe dosyamızı çalıştıralım.
Alın size çalıştı.Birdahaki derste görüşmek üzere buradaki mantıkları anlamanız onemli arkadaşlar.esasen .cpp uzantısı
c++ a aittir ancak on onemli değil bizler derlememizi yapabildiğimizden doalyı bir problem yok:)
Diğer compilerda compile ise:
Programımızı bir notpad de yazdıktan sonra bunu mesela "ilkprogramım.c" seklinde uzantısı .c olacak sekilde kaydediyoruz.
Sonra shell kullanıyorsak "gcc ilkprogramım.c" komutu ile compile ediyoruz.
Bulundugumuz klasorde a.out diye bir calıstırılabilir dosya olusucaktır. ./a.out yazarsanız program calısır.
exploit derleyenler bilirler :) Eger windowsda bi compiler kullanıyorsak.
Compilerın bulundugu klasore ilkprogramım.c yi atacaz ve compilerımızın kullanımına gore mesela
borland icin "bcc32 ilkprogramım.c" yazacaz komut isteminde.
(ama komut isteminde compilerın bulundugu klasore gelmemiz lazım once).
Sonra ilkprogramım.obj diye bi dosya olusturacak compiler.
Son adım olarak "make ilkprogramım.obj" yazarsak ilkprogramım.exe diye bi calıstırılabilir dosya olusucak.
Artık ilkprogramım.exe yazarak programı calıstırabiliriz.
arkadaşlar bir x değişkeni düşünelim.x in değeri herşey olabilir.harf,rakan,sayı.ama biz şu an oncelikle x i sayı değişkeni
olarak
tanımlayacağız.
İlk oğrendiklerimize şu kodları ekleyelim.
x=3;
printf(x);
Yukarıdaki kodları araya sokuverin.Daha sonra compile etmeye çalışın.Çalışın diyorum çünkü compile edemeyceksiniz.
Çünkü biz burada kafamıza göre bir harfe değer vermeye kalktık.c nerden bilcek bizim buna sayı değeri vereceğimizi,belkide
ben buraya harf değeri vercem.İşte c de böyle karışıklıklar olmaması için değişkenler vardır.Bizim en çok kullanacağımız
değişkenler:
int: integer tam sayı değişkeni
char: character yani harf değerleri
double ise virgüllü sayı.
Biz şimdilik tam sayı değiişkeni olan x üzerinde duracağız.Örn:
int x; diyerek bir x değişkeni tanımlayabilirz.Ama bu değişkenler üzerinde kontrol yapabilmemiz içide bazı operatörler vardır:
+:toplama ve birbirine ekleme operatörü
-:eksiltme
*:çarpma
/:bölme
%:bölmede kalanı verme.
=:değer atama ve eşitleme operatörü.Bizim şu an konumuz tam sayı olduğu için bunları bilmemiz şimdilik kafi:)
şu kodları yazalım:
#include
main(){
int x, y;
x=5;
y=x+1;
printf("%d",y);
}
Şimdi.İlk satırlardaki olayları geçen derste açıkladıdydık zaten.int x, y; diyerek x ve y tam sayı değişkeni olarak tanımladık.
x=5; diyerek = operaörüyle x e 5 değerini atadık.Daha sonra y=x+1; diyerek y'yi x değerinden +1 fazla ata dedik.
printf içerisinde "%d" gibi bir ifade var.Burada da ekrana y değerini verdikki programın çıktısı 6 olcaktır.
Burada ,y ile y tamsayısını oku denmektedir.
Peki buradaki %d ne oluyor???printf ile burada ekrana bir çıktı vermek istiyoruz yine.Ama sadece x bir tam sayıdır demek
yeterli değildir.printf e de okunacak olan değerin hakkında bilgi verek gerekir.Buda biçimleme belirteçleriyle olur:
%d:tam sayı oku
%c:karakter
%f:kayen noktalı sayı
%s:karakter katarı...
bunlar gibi bir çok belirteç var arkaşlar.sırası geldimi bunlarada değincez.buradaki %d de bir tam sayı oku demektir.Ynai
printf("%d", y); türkçe meali y tam sayısının değerini oku!Bu kadar basit arkadaşlar.Şimdi ise şu kodları yazalım ve derleyelim:
#include
main(){
int x;
scanf("%d",&x);
printf("x in degeri %d dir", x);
}
şimdi değerli öğrenciler:)))burada karşımıza şu ana kadar hiç çıkmayan bir fonksyon var . scanf. nedir bu scanf??
scanf input yani girdi alır.Yani bu nedemektir arkadaşlar scanf burada x e değer ataycaktır.Yani bir girdi alcaktır x değeri için.
Peki scanf in yapısını biraz inceleyelim:
Aynen printf gibi meali ise şöyle olabilir: "x in değeri için girdi al.x'e işle."zira program compile edilip çalıştırıldığında ekran
duracak
sizin bir değer girip enter basmanızı beklicekti.scanf içerisindeki &x ise değişik bir ifade.& "nın adresi"
gibi bir anlama sahiptir.x'e girilen değeri işlemek için & kullancas.Yani &x x'in adresi gibi bir anlama gelir.
sora grdiğiniz değeri tekrar size göstercektir.yani scanf printf gibi kullanılır şindiliki.
burada printf i biraz değişik kullandık."" işaretleri arasına cümle yazdık araya %d sıkıştırdık.Burada x değeri %d nin aldığı yere
çıktı olarak verilecektir.yani x'e 5 değeri verdiğinizi varsayarsak çıktı "x'in degeri 5 dir" olacaktır.yani bu araya cümle de
dıpabiliriz.:)
pritf kullanımında ki bazı inceliklere değincem şimdi.örneğin biz printf ile alt alta satırlarda yazı yazdırmak istiyoruz.İşte o
zaman
\n operatörünü kullancaz.Yani;
printf("amca\namca");
çıktı şoyle olacaktır.
amca
amca
bu rada \n satırı alta geçirmek için kullancamız operatördür.%d yi zaten anlatmıştım ders ikide.Ama şole bir durum söz konusu
oldu diyelim:Ben printfe iki tan sayı yazdırmak istiyom.Hatırlarsanız %d olan kısma sayı değeri kendini yazdırırdı.
mesela şöyle bi şey desek:
int x=4, y=3;
printf("deger %d",y,x);
Burada c hangi değeri yazacakki %d ye sadece bir değeri oraya yazcak.o değerde y olacak neden çünkü ilk sırada y yer
alıyor.
Ama şu şekilde bir değişiklikle;
printf("deger %d %d",y,x);
dersek hem y hemde x değeri ekrana verilecektir.
scanf de de aynı şey geçerlidir:
scanf("%d", &y, &x ); gibi bir ifade yanlış olur.Bunun yerine
scanf("%d %d"&x,&y); ikisi içinde değerlerimizi girebiliriz.Eğer &y ile &x arasına "," koymasa idik değerleri 12 gibi yanyana
yazmak zorunda kalcaktık.
şimdi sıra geldi sorgu yapmak için kullanabileceğimiz kontrol ifadesi if-else yapısına;örneği inceleyelim.
if(i==3)
{
//işlemler dizisi
}
yukarıda if(i==3) diyerek eğer i 3 değerine eşitse { } parantezler arasındaki işlemleri gerçekleştir demektir.{ } arasına
işlemlerimizi
yazarız.birde else vardırki buda değilse olarak kullanılır yani;
if(i==3){
//işlemler dizisi
}
else{
//işlemler dizisi
}
burada i 3 değerine eşit olmadığı zaman else ifadesinin içerisindeki değerler işletilmeye başlanır.else değilse anlamına
getirilebiri.
if-else yapısını şu örneğimizle inceleyelim;
#include
main(){
int x=4;
if(x==5){
printf("\n x 4 mus");
}
else{
printf("x 4 degilmis");
}
}
gibi.Sıra geldi switch e.Switch de aynen if gibi daha çok sorgulama işlemi yapmak için kullanılır.Yani örneğimize bakalım:
#include
main(){
int x;
scanf("%d", &x);
switch(x ){
case 1: printf("x 1 mis");
case 2: printf("x 2 imis");
case 3: printf("x 3 imis");
}
}
Yukarıyı sırasıyla inceleyek.ilk 4 satırı zaten biliyonuz.Gelelim switc(x) dedimiz yere.Burada switche kontrol etmesi gereken
değişkenin adını soledik daha sonra { } parantezleri içerisine case1: deidk.case 1 x 1 e eşitse demektir.yani case burada
sorgulama yapan kişidr:)))bir çok koşul ifadesi kullancağımız zaman switche başvurailiriz.
sıra geldi while döngüsüne.Döngü nedir derseniz kendisine verilen işlemleri tekrarlatılması gereken sayıda tekrarlayan
yapılar diyebiliriz.Örneğimizi inceleyebilirz.
#include
main(){
int x=0;
while(x<4){
printf("amca");
x++;
}
}
yukarıda while(x<4) dedik yani bu demektirki eğer x 4 ten küçükse x değeri 4 e eşit olana kadar ekrana amca yazdır.Hımm.
Bu durumda x i 4 e şitleyecek bi yapı olması lazım.While döngüsünün içine baltığımızda x++; görüyoruz.x++ demektirki
x in değerini her seferinde 1 artır.yani döngü her başa sardığında yazdır sora x değerini 1 artır.Yukarıdaki programı
çalıştırdığınızda
ekrana 4 tane amca yazısı gelcektir.
int deger, sayi;
deger=0;
while(deger<10){
sayi=deger+1;
printf("\n deger % dir",sayi);
}
arkadaşlar hatırlarsanız bundan once sizlere while dongüsünü if-else switch yapılarını anlarmıştım.Bu dersimizde ise for
döngüsü
ve array yani dizilerden bahsedeceyim.
Şidi oncelikle örneğimizi inceleyelim:
int a;
for(a=0; a<4; a++){
printf("admin");
}
Şimdi sırasıyla bu kısmı inceleycek olursak: a=0; dedik ve ardındanda a<4 dediik.Bu şu demek oluyor.Arkadaşlar biz dögüyü
4 kez tekrarlatmak istiyoruz.Yani eğer döngünün 3 kez tekrarlanmasını istiyor olsaydık a=1; a<4; yada a=0; a<3; gibi ifadelerde
kullanabilirdik.a=0 buradaki başlangıç değeridir.yani a eşitlenmesi gerekn sayıya eşitlenene kadar a++ diyerek
artırılabilir.Şimdi
for döngüsünü anlattığımıza göre döngüleri sonlandırmak için bir sonlandırma ifadesi kullanacağız.Bunun adı break.Bunu şu
şekilde
kullancaz.Örneğimizi inceleyelim:
int a=1, b;
for(b=0; b<4; b++){
if(a==1){
break;
}
printf("admin");
}
Yukarıyı inceleyecek olursak for döngüsü içerisine birde if yapısı ekledik eğer a=1 ise break ile döngüyü sona erdirecek.Yani
ekrana
admin çıktısı verilmeyecek.Bunun gibi birkaç program kontrol ifadeleri var ancak onları daha sonra göreceğiz.
Gelelim for döngüsünün çeşitlerine.Biz for döngüsü en sık yukardaki biçimde ve şu şekilde kullancağız.
for(;;){
printf("admin");
}
Yularıdaki döngümüzde for döngüsü içerisinde değişken v.s yok.Neden çünkü for döngüsü içerisindeki ;; sonsuz döngüyü
beliritr.
Yani yukardaki kodları derlenirse ekrana sürekli admin çıktısı verilir.
for döngüsünde değişken döngü içersinde de tanımlanabilir.Örn:
for(int a=0; a<3; a++){
printf("admin");
}
gibi.Yukarıdaki örnekte değişken for döngüsü içindedir.
-Array(Dizi)-
int a[20];
Yukarıdaki şekilde a adında 20 tane tam sayı değişken tutabilen bir array tanıttık.Esasen bunlar a[1] a[2] şeklinde gitmesi
lazımiken
ilk eleman[0] a atanıyor.Yani ikinci eleman a[1] de üçüncüsü ise a[2] de.Örneğin bu dizinin ilk elemanına bir değer atıyalım:
int a[0]=2;
Bu şekilde a[0] dizininin elemanını 2 yaptık.Şimdi basit bir program yapalım.Bizden üç tane tamsayı istesin ve bunlardan
2.dizideki
elemanı ekrana versin.
#include
main(){
int a[2];
for(int b=0; b<3; b++){
printf("\nBir sayi girin:");
scanf("%d",&a[b]);
}
printf("%d",a[1];
}
Şimdi yukarıdaki kodlarda aklınızı karıştıran yerler oldu sanırım ancak büyük ihtimalle. ve aklınızı en çok a[b]; bölümü
karıştırdı.
Oncelikle int a[2] diyerek üç tamsayı tutabiliecek bir dizi tanıttık.daha sonra for dongüsü ile 3 tane tam sayı girdisi alacağımız
için
döngüyü başlattık.sonra bu döngü içerisine scanf("%d",&a[b]); ifadesini koyduk.Neden???
Arkadaşlar bakın.örneğin 50 dizilik bir array tanıttığımız zaman her dizi için ayrı ayrı scanf kullanırsak olmaz.Adamın iflahı
kesilir.
Bu yüzden bakın burayı iyi anlamaya çalışın:
b=0 diyerek a[b] dedik yani b=0 olduğundan a[b]=a[0] olacaktır.Yani doğal olarak ilk girdiğimiz tamsayı a[0] a atanacaktır.
Daha sonra döngü başa donecek b++ ile b=1 olacak ve ardından a[1] dizisine girdiğimiz değer yazılcaktır.Aynı işlem b=2 için
de olcaktır.Yani
burada kısayol kullandık arkadaşlar.Bu ksımı anlamanız size yardımcı olacaktır.Yoksa aksi halde çok sayıda scanf ile
yakından arkadaşlığınız oluşacaktır:)
hatırlarsınız ki bundan onceki dersimizde dizileri görmüştük.Bu dersimizde ise stringleri gorebilirz demektir demektir bu.
Hatırlarsanız ders2 de değşkenlerden bahsetmiştik.int double float vs.vs.Ama bunların arasında char karşımıza
çıkmadı.Aslında
double ve float da çıkmadı ancak ama olsun:)double ve float ondalıklı sayı için kullanılır.Neyse.char karakter harf tutmak için
kullanılan
bir değişkendi.E biz kelime ve cümlelerle uğraşacamıza göre bunları harf taşıyan dizilere yani stringlerle halledecez.Şimdi
bi stringimiz olsun ve içerisinde admin yazsın.int B[6]; gibi bir şekilde dizimizi tanıtmış oluyorduk.Peki stringlerimizi nasıl
tanıtacaz?_?
Tabiki aynı şekiin yandan yamiş şeklinde:)) char B[6]; şu anda elimizde 6 tane harf tutabilen bir stringimiz var.Şimdi buna
sırasıyla
harflerimizi yerleştirelim.
B[0]='F';
B[1]='e';
B[2]='r';
B[3]='m';
B[4]='a';
B[5]='N';
B[6]='\0';
Aslında yukarıya bakacak olursak atadığımız harfleri ' ' işaretleri arasına yerleştirdik.char değişkeninde bir değişkene değer
atarken bunları
kullancaz.ilk sıraya B[0]=F; demiş olsaydık F adında bir değişken sanacak bizim c bu F yi.Bu yüzden.Birde son değere \0
değerini
verdik.Bu nedemek arkadaşlar.Hatırlayın \n gibi bir operatörümüz vardı ve bu alt satıra geç demek oluyodu.Buradaki \0 ise
sona geldik string sona erdi dur bakalım.Demek oluyor ona göre:)Yukarıya bakarak bi string
için uzuuuuun uzun uraşacamızı gördünüz.tabiki olay boyle değil arkadaşlar biz.char A[]="admin"; desek de olurdu.Burada
stringin uzunluğunu belirtmedik ancak compiler bu olayı kendiliğinden çözecektir stringin uzunşuğunu hemencecik kavraycak
ve
sona ise \0 operatörünü yapıştırcaktır.Burada dikkat edeceğiniz bir husus varki arkadaşlar oda "" işaretlerini kullanmış
olmamız bu sefer.
String belirlerken "" işaretlerini kullanıyoruz.Ancak harf yada karakter belirlerken ' ' işaretlerini kullanıyoruz.Mesela bizim bi
stringmiz var
ve bu string üzerinde oynaşmalar yapabiliriz demektir.B[3]='\0'; dersek B[3] den sonraki kısım külliyen silinmiş olacaktır.Olay
bu.
Şimdi birde bu stringi printf ve scanf de kullanmaya.Bunu nasssı yapcaz diyecek olursanız?_?
printf("%s", B); bu komut ekrana admin çıktısını vercektir.Burada pritfin içerisinde gördüğünüz %s i string okuturken kullancaz
Ama biz stringimiz belirli bir harfini olutmak istiyorsak aynen şoyle yapcaz;
printf("%c", A[B]); bu durumda ekrana r harfi gelecektir.Buradaki %c ise char türünde bir bir çıktı alacağımız belirtiyor.Yani
burdada
aklınız karışmasın arkadaşlar.
scanf de ise olay printf ile aynıdır.
scanf("%s", A); şimdi bundan once benim yapmış olduğum hatayı başıma kakınç eden bi arkadaş vardı adını
vemicem.Burada
scanf("%s",A); gibi bir ifade görünce yine "Aaaa yanlış yapmış yine bu adam" diyecektir ama bu sefer yanılacaktır.Çünkü
stringlerimize
değer atarken & kullanmayız.Bunun sebebi ise pointerlerde annatacam.Aslında böyle uzun uzun printf ve scanf ile uğraşmak
yerine kullanabileceğimiz
fonksyonlarımız var.Ama bunları soylemeycem:p desem yalan olur.Tabikide soyleyecem.
printf("%s", A); yerine puts(A); yazsakda aynı işi görecektir.
scanf("%s", A); yerinede gets(A); yazsak aynı şey olurmu?_?Olmaz.gets ile stringe tüm satırı işletebilirsiniz ancak scanf aynı
işi görmez.
Mesela bi stringe "kral besiktas" gibi bi değer atıyacak olsak scanf sadece kral kısmını stringe
atar.Niye?_?.Çünkü scanf her boşluktan sonrasını ayrı bi input sanar.gets(A) yazarsak.A stringine "kral besiktas" tümüyl
atancaktır.
Sıra geldi fonksyon yazma olayınaaaaaa.Bu güne kadar kodlarımızı hep main() içerisine yazdık arkadaşlar.Ama bazen
oluyorki aynı kodları dört beş kez yazmamız gerekiyor.
Hemde karışıklığı onlemk için bu kendi fonksyonlarımıızı yaabilirz.Şimdi örneğimizi inceleyelim:
#include
int x;
int topla(int a, int b);
int topla(int a, int b){
x=a+b;
}
main(){
topla(3,4);
printf("%d", x);
}
Evt yukardaki kodları compile ettiğimizde karşımıza 7 sonucu gelcektir.Yularıdan sanırım pek bişey anlamadınız.Şimdi
sırasıyla bunları anlatalım;
en başta bi tane int x; gördünüz.Bu ne kardeşim diyebilirsiniz.Bunu en sona bırakıyorum.Bunu scopelerle beraber
anlatcam.topla adlı bir fonksyon belirledilk ve fonksyona
iki tane tam sayı değişkenimizide verdik.a ve b.topla içerisine ise x=a+b dedik.Yani a ve b ye verilecek değeere göre x
sonuclandırılacaktır.Peki buraya kadar herşey tamam.
Fonksyonumuzu nasıl çağırdık? Tabikide main içerisine yazarak.main her zaman bizim kurtarıcımız olmuştur.Aslında main de
başlı başına bir fonksyondur amma ve lakin
ana fonksyondur.Yani compiler ilk olarak main içerisindeki kodları işleme tabi tutacaktır.Neyse biz topla fonksyonumuza geri
donelim.
Fonksyonlarımızı illakine int topla vs şeklindemi tanıtacaz.Tabiki hayır.Bunuda soa anlatcam.Şimdi topla fonlsyonu
içerisindeki a ve be değişkenlerini herkes gördü sanırım.
topla(int a, int b) fonksyonunu çağırırken topla(3,4) dersek a=3 b=4 olur.Buradaki mantık bu.Beki şimdi ders başında scope
dedim.Scope içerik anlamına getirilebilir.
Bakınız arkadaşlar.Şu kodları inceleyelim:
#include
int x;
int topla(int a, int b);
int topla(int a, int b){
x=a+b;
}
main(){
int a;
topla(3,4);
printf("%d", x);
scanf("%d", &a);
}
yukarıdaki kodlara iyi bakın arkadaşlar.int a iki tane!Alla Alla nasıl oluyor bu iş?Oluo.Çünkü ilk int a yani topla fonksyonunda
tanımlamış olan a topla fonksyonunun scopesinde yani
içeriğinde tanımlı bir değişkendir.Diğer a değişkeni ise main fonksyonunun scopesinde tanımlıdır.Yani c bu iki a
değişkeninide ayırt edebilir.Şimdi arkadaşlar hepiniz main fonklsyonu
içerisine bir tanede int x=3; şeklinde bi değişken tanımlamasını istiyorum.Bu değişkeni tanımladığınızda artık programın çıktısı
7 yerine 3 olacaktır.Çünkü burada program main içerisinde
tanımlı olan x i okuyacaktır.Kodlarınızı şu şekilde değiştirin bide arkadaşlar;
#include
int x;
int topla(int a, int b);
int topla(int a, int b){
x=a+b;
printf("%d\n", x);
}
main(){
int x=4;
topla(3,5);
printf("%d", x);
scanf("%d", &a);
}
Bu durumda ekrana 8 ve 4 rakamları gelecektir.Çünkü main içerisindeki printf main içerisinde tanımlı x'i okuyacak topla
içerisindeki printf ise toplada tanımlı x i okuyacaktır.
Yani bu scope olayını iyi anlayın arkadaşlar.
Evet bu dersimiz bu kadar.Yani anlayıp anlamadığınızı belirtin arkadaşlar.Bakın anlamayıpta geçiştiriyosanız
döverim:)Takılan arkadaşlar ister msn de ister forumda sorsun
ister mail atsın ister telefon etsin ister eve gelsin:)))))))Ama sorsun yani.Bu ders uzun mu oldu ne?Yorum bekliyom arkadaşlar
bakın:)Bide bi odev verecem ama ne versem?
Buldum bunun içinde size random-randomize fonksyonunu anlatacam.Nedir bu random randomize?_?bu iki fonksyon
sayesinde bilgisayar bize istediğimiz sayıda ve istediğimiz
aralıkta sayılar veririr.Örneğimizi inceleyelim.
#include
#include
#include
main(){
int i;
randomize();
for(i=0; i<5; i++)
printf("%d", random(25));
}
Yukarıdaki programı compile ettiğinizde ekrana 5 tane sayı gelecektir.Ve bu sayılar 0-25 aralığında olacaktır.0-25 aralığı nı
random(25); fonksyonu ile belirtiriz.
Kaç sayı belirteceğimizi ise for döngüsü kullanarak.Dikkat ederseniz i=5 olana kadar random(25) yani 5 tane tam sayı
belirtecek.Evt anlaşılmış olması lazım.Bide orada
yeni olarak
tanımlıdır.
bilmesenizde olur:)
Bunu öğrendikte ne oldu diyebilirsiniz.Gösterecem şimdi size ne olduğunu:))) Bakın bi sayı bulmaca oyunu yapcanız
arkadaşlar.Nası olcak.Önce bizden bi sayı istiycek
sora bilgisayar random randomize ile bi sayı belirleyip bizim sayımızı tahmin etmeye çalışcak.Tabi siz sayı aralığını
küçültürseniz iki tarafında bilme şansı artar.Neyse sora
program bilgisayardan sayı alacak ve bizim tahminde bulunmamızı isticek.Biz bilirsek bizi tebrik etcek.Filan.Oyun neye göre
bitcek.Ya bir oyuncu bilene kadar devam etsin yada
puanlama sistemi koyun.Bu anlattığım sayı bulmaca oyununu tamı tamına 10 fonksyon tanımlamıştım ve 14 tane tam sayı
değişkenim vardı.Artık değişken tanımlayacak harf
kalmamıştı.Ama benim oyunda puanlama sistemi oyuna ilk kimin başlicanı belirleme filan vardı.Siz deneyin yapamazsanız
ben size kendi yaptığımın kodlarını veririm:)
Bakın anlamayan olursa sorcak.Döverim demiştim.:)Hadi kolay gele!
STRUCTLAR
C de en önemli noktalardan biridir.Kendine ait özellikleri olması en öenmli özelliğidir.Nası kendine ait özelliği
derseniz:Örneğin 123 sayısını ele alalım.Bu sayı üç basamaklı tek sayı 3’e kalansız bölünür rakamları birbirinin 1 fazlasıdır
vs.Bu özellikler 123 sayısı içindir.Struct larda aynen böyledir tanıtılan değişkenin özellikleri vardır.Örn;
Struct kisi{
İnt telno;
Char ad[10];
Char soyad[10];
};
Yukarıda ki örnekte kisi adlı structa ait özellikler vardır.Telefon numarası ismi soyismi.Bunlarıda biz
belirleyeceğiz.Belirlerkende “.” Operatörü kullanacaz.Yani Ahmet.telno gibi.Peki devam edelim.
#inlclude
Struct kisi{
İnt telno;
Char ad[10];
Char soyad[10];
};
kisi Ahmet;
Ahmet.telno=3156879;
Strcpy(Ahmet.ad, “Ahmet”);
Strcpy(Ahmet.soyad, “Tirpanoglu”);
printf("Telefon numarasi:%\n",Ahmet.telno);
printf("Adi:%d\n",Ahmet.ad);
printf("Soyadi:%d\n",Ahmet.soyad");
Yukarıda ki program çalıştığında ekrana üç mesaj kutusu içerisinde 3156879,Ahmet ve Tirpanoglu mesajları gelecektir.
Döküman 2004 yılında hazırlanmıştır.






0 Yorum:
Yorum Gönder