WwW.FoRumSTylE.TuRKpr0foRuM.NET
Would you like to react to this message? Create an account in a few clicks or log in to continue.
WwW.FoRumSTylE.TuRKpr0foRuM.NET


 
AnasayfaPorTaLGaleriAramaLatest imagesKayıt OlGiriş yap
Arama
 
 

Sonuç :
 
Rechercher çıkıntı araştırma
En son konular
» kurtlar Vadisi Pusu Bölüm 13
If Örnekleri Icon_minitimeSalı Haz. 30 2009, 12:06 tarafından yasakmc

» kurtlar Vadisi Pusu Bölüm 12
If Örnekleri Icon_minitimeSalı Haz. 30 2009, 12:03 tarafından yasakmc

» kurtlar Vadisi Pusu Bölüm 11
If Örnekleri Icon_minitimeSalı Haz. 30 2009, 11:49 tarafından yasakmc

» kurtlar Vadisi Pusu Bölüm 10
If Örnekleri Icon_minitimeSalı Haz. 30 2009, 11:47 tarafından yasakmc

» kurtlar Vadisi Pusu Bölüm 09
If Örnekleri Icon_minitimeSalı Haz. 30 2009, 11:36 tarafından yasakmc

» kurtlar Vadisi Pusu Bölüm 08
If Örnekleri Icon_minitimeSalı Haz. 30 2009, 11:29 tarafından yasakmc

» kurtlar Vadisi Pusu Bölüm 07
If Örnekleri Icon_minitimeSalı Haz. 30 2009, 11:28 tarafından yasakmc

» kurtlar Vadisi Pusu Bölüm 06
If Örnekleri Icon_minitimeSalı Haz. 30 2009, 11:27 tarafından yasakmc

» kurtlar Vadisi Pusu Bölüm 05
If Örnekleri Icon_minitimeC.tesi Haz. 27 2009, 20:18 tarafından yasakmc

» kurtlar Vadisi Pusu Bölüm 04
If Örnekleri Icon_minitimeC.tesi Haz. 27 2009, 20:15 tarafından yasakmc

Dost siteler
Kral Forumtr

 

 If Örnekleri

Aşağa gitmek 
YazarMesaj
GÖZDE
Admin
Admin
GÖZDE


Kadın
Mesaj Sayısı : 1274
Yaş : 31
Nerden : sakarya
Kayıt tarihi : 05/05/08

If Örnekleri Empty
MesajKonu: If Örnekleri   If Örnekleri Icon_minitimeCuma Haz. 06 2008, 11:54

If Örnekleri
Simdi and, or ve not ifadelerini tek tek ve birlikte kullanan örnekler yapalim. İlk önce and ile ilgili basit bir örnek yapalım. Bu programı and'in kullanımına örnek olması için yapıyoruz. Yoksa program pek bir ise yaramaz:
Program and_ornegi;
Uses wincrt;
Var
sayi1, sayi2 : integer;
Begin Clrscr;
writeln('Asagiya 1 ile 10 arasi 2 sayi giriniz');
write('Birinci Sayi:');Readln(sayi1);
write('Ikinci Sayi:');Readln(sayi2);
clrscr;
if (sayi1 in[1..10]) and (sayi2 in[1..10]) then writeln('Sayilari dogru girdiniz')
else writeln('Sayilari Yanlis Girdiniz...');
readln;
end.
Programı TP’de yazıp çalıştırın ve birkaç sayı girin. Gördüğünüz gibi ancak sayıların ikisi de 1 ile 10 arasındaysa sonuç doğru oluyor, aksi halde (sayıların birisi bile 1 ile 10'un dışında olsa) sonuç yanlış oluyor. Çünkü VE (and) kullandık. Peki, bunun yerine sayılardan en az birisinin 1 ile 10 arasında olmasını istesek ne yaparız. O zaman or (veya) kullanırız:
Program and_ornegi;
Uses wincrt;
Var
sayi1, sayi2 : integer;
Begin Clrscr;
writeln('Asagiya 1 ile 10 arasi 2 sayi giriniz');
write('Birinci Sayi:');Readln(sayi1);
write('Ikinci Sayi:');Readln(sayi2);
clrscr;
if (sayi1 in[1..10]) or (sayi2 in[1..10]) then writeln('Sayilari dogru girdiniz')
else writeln('Sayilari Yanlis Girdiniz...');
readln;
end.
Bu programı çalıştırdığınızda iki sayıdan birisini 1 ile 10 arasında girerseniz, diğerini ne girerseniz girin sonuç doğru olur. Eğer ikisi birden 1 ile 10 arasında değilse sonuç yanlış olur. Peki, simdi de and ile or'u birlikte kullanarak kullanıcıdan 1,2,3,4,5,11 sayılarından birisini yazmasını isteyelim. Eğer bu yazılan iki sayı da bu sayıların içindeyse sonuçta dogru yazsin, birisi bile bu sayıların dışındaysa sonuçta yanlış yazsın:
Program and_ornegi;
Uses winrt;
Var
sayi1, sayi2 : integer;
Begin Clrscr;
writeln('Asagiya 1,2,3,4,5,11 sayilarindan birisi olmak sartiyla 2 sayi giriniz');
write('Birinci Sayi:');Readln(sayi1);
write('Ikinci Sayi:');Readln(sayi2);
clrscr;
if ((sayi1 in[1..5]) or (sayi1=11)) and ((sayi2 in[1..10]) or (sayi2=11)) then writeln('Sayilari dogru girdiniz')
else writeln('Sayilari Yanlis Girdiniz...');
readln;
end.
Burada ilk önce sayi1'in 1 ile 5 arasında olup olmadığına bakılır. Eğer doğruysa zaten and kelimesinin solundaki iki şartı kapsayan şart doğru olur. Yani sayı ya 1 ile 5 arasındadır, ya da 11'dir. Eğer sayi1 1 ile 5 arasında değilse şart yanlış olur ama bir de or'un sağındakine bakılır. Eğer sayı 11'e eşitse bu şart doğru (true) olacağından yine genel şart doğru olur. Bu durumda and kelimesinin solundaki Sart doğru olmuş olur. Eğer and'in solundaki iki şart da yanlış ise sonuç otomatik olarak yanlış olur. Sağ taraf için de (sayi2 için) ayni işlemler yapıldıktan sonra eğer genel Sart doğruysa sonuç doğru olur. Kendiniz birkaç örnek yaparak bunları görebilirsiniz.
Simdi basit bir örnek daha yapalım. Bu program kullanıcıya bir toplama işlemi sorsun. Eğer kullanıcı sonucu doğru girerse "Tebrikler, bildiniz" yazsın, aksi halde doğru sonucu ekrana yazsın. Yani ilk defa ciddi bir program yapıyoruz Smile
Program Toplama_Programi;
Uses wincrt;
var
s1,s2:integer;
toplam:integer;
Begin Clrscr;
{Rastgele iki sayi seciliyor...}
randomize;
s1:=random(100);
s2:=random(100);
{...0 ile 99 arasinda rastgele 2 sayi secildi}
writeln('Asagidaki toplama isleminin sonucunu yaziniz...');
writeln;
write(s1,' + ',s2,' = ');readln(toplam);
if (toplam=s1+s2) then writeln('Tebrikler, bildiniz...')
else writeln('Yanlis Sonuc! Cevap ',s1+s2,' olmaliydi.');
readln;
end.
Gördüğünüz gibi if deyiminde şart olarak iki sayının toplamını da verebiliriz. Hatta başka işlemler bile yapabiliriz. Mesela şart olarak (toplam=(s1*21)/(s2+4)*11+9-s2*s1) gibi uzun bir aritmetik işlem birle yazabiliriz. Ayrıca eşittir işaretinin sağ ile solu yer değiştirebilir. ((s1*21)/(s2+4)*11+9-s2*s1=toplam) gibi. Buralarda parantezlere dikkat etmelisiniz. Şimdilik rasgele sayının nasıl bulunduğunu öğrenmedik. Onun için o kısımları kafanıza takmayın. Yukarıdaki örnekte and ya da or kullanmadık ama faydalı bir program olduğunu düşünüyorum. Not operatörü ise sonuç doğru ise yanlış, yanlış ise doğru yapar. Bununla ilgili bir program yapmıştık ama daha iyi anlaşılması için basit bir örnek daha yapalım. Bu program da 1 ile 5 arasında bir sayı yazılmasını istesin. Eğer sayı 1 ile 5 arasında ise doğru, değilse yanlış yazsın:
Program deneme;
uses winccrt;
var
sayi:integer;
begin clrscr;
write('1 ile 5 arasi bir sayi giriniz: ');readln(sayi);
if not (sayi in [1..5]) then writeln('Yanlis!') else writeln('Dogru.');
readln;
end.
Buraya kadar genelde sayılarla ilgili işlemler yaptık ama bunun mecbur olmadığını söylemistim zaten...
Programlamada karsılaştırma ve (sonucuna göre) karar verme işlemleri çok önemli ve geniş kullanımlıdır. Diğer kullanım alanlarını görmeye devam edeceğiz. Ama önce şimdiye kadar pascal hakkında öğrendiklerimizin hepsini birden kullanan ve nihayet bir ise yarayan bir oyun yapalım. Bu oyunda bilgisayar 1 ile 1000 arasında rasgele bir sayı tutsun. Biz bir tahmin yapalım. Eğer tahminimiz bilgisayarın tuttuğu sayıdan küçükse ekrana ÇIK, küçükse IN yazılsın ve bu işlemler biz sayıyı doğru tahmin edene kadar sürsün. Hani bir oyun yapıyoruz ya -hiç gerek yok ama- bir de algoritmasını yapalım ki belki daha iyi anlaşılır. Algoritmamız söyle olabilir:
1) Rasgele (1 ile 1000 arası) bir sayı tut. 2) Kullanıcıya bir sayı sor. 3) Eğer kullanıcının cevabi senin tuttuğun sayıdan büyükse ekrana "in" yaz. 4) Eğer kullanıcının cevabi senin tuttuğun sayıdan küçükse ekrana "çık" yaz. 5) Eğer kullanıcının cevabi senin tuttuğun sayıya eşitse ekrana "Aferin Bildin!" yaz. 6) Eğer kullanıcının cevabi senin tuttuğun sayıya eşit değilse 2. adıma git. 7) Programı bitir.
Bu algoritmayı kendinize göre yapabilirsiniz tabii. Zaten programcılığın en zevkli yanlarından birisi de ayni programı yapmak için çok fazla seçeneğiniz ve çözüm yolunuz olmasıdır. Simdi de programı yazalım. Programımız söyle olabilir:
Program Tahmin_et_bakalim;
uses wincrt;
label en_bas;
var
sayi, tahmin, ts : integer;
begin clrscr;
ts:=0;
randomize;
sayi:=random(1000)+1;
gotoxy(1,1);write('1 ile 1000 arasi bir sayi giriniz...');
gotoxy(1,5);write('Islem: ');
en_bas:
gotoxy(13,3);write(' '); {Eski tahmini ekrandan siliyoruz}
gotoxy(1,3);write('Tahmininiz: ');readln(tahmin); {bir tahmin isteniyor}
ts:=ts+1; {Tahmin sayisi artiriliyor}

gotoxy(8,5);
if tahmin< then>
if sayi< write(?In>
writeln('Tahmin Sayisi: ',ts);
end else goto en_bas; {tahmin yanlissa basa gidiliyor}

readln;
end.
Programı TP’de yazıp çalıştırın. İste size güzel bir oyun! Programda asil dikkat etmemiz gereken yerleri kalın yaptım. İsterseniz size bu oyunu geliştirelim ve bu sefer biz içimizden bir sayı tutalım, bilgisayar bulsun! O zaman aşağıdaki programı pascal'da yazıp çalıştırın ve sonra da satır satır inceleyin. Ama programı çalıştırdığınızda hile yapmayın. Yani aklınızdan tuttuğunuz sayı 430 ise ve program 420'yi tahmin ederse in demek yok! Ona göre. Bu programı Pascal'da elinizle yazın. Yani kopyala/yapıştır yapmayın. O zaman daha kolay öğrenirsiniz. Program söyle:
Program Tahmin_et_bakalim;
uses wincrt;
label en_bas;
var
tahmin, ts : integer;
alt,ust:integer;
tus:char;
begin clrscr;
writeln('Simdi aklinizdan bir sayi tutun ve eger benim söyledigim sayi');
writeln('sizin tuttugunuz sayidan küçükse çik anlaminda "ç" harfine, büyükse');
writeln('in anlamindaki "i" harfine bir defa basin.');
writeln;
writeln('Not: Sayi 1 ile 100 arasinda olmali!');
writeln;
writeln('Hazirsaniz Enter''a basin..');
readln;
clrscr;
alt:=1;
ust:=1000;
ts:=0;
gotoxy(1,1);write('Benim Tahminim...: ');
gotoxy(1,3);write('Ne yapiyim (i/ç).: ');
tahmin:=500;
en_bas:
gotoxy(20,1);write(tahmin);
gotoxy(20,3);
repeat
tus:=readkey;
until tus in['i','I','ç','Ç','D','d'];
if tus in['i','I'] then begin
ust:=tahmin;
tahmin:=(alt+ust) div 2;
end;
if tus in['ç','Ç'] then begin
alt:=tahmin;
tahmin:=(alt+ust) div 2;
end;
ts:=ts+1;
if tus in['d','D'] then begin
gotoxy(1,5);write('Aferin Bana!');
gotoxy(1,6);write('Tahmin Sayim: ',ts);
end else goto en_bas;
readln;
end.
Burada bilmediğimiz iki şey var. Birincisi repeat...until döngüsü. İkincisi div işlemi. Div (İngilizcesi division) bölmek manasındadır ve solundaki sayıyı sağındaki sayıya bölüm küsuratı atar. Yani mesela 6 div 3 = 2'dir ve 15 div 4 = 3'dür. Döngüler konusunu anlatacağız. Programın çalışma mantığı gayet basit. Ama yeni programlamaya başlayan birisine karışık gelebilir. Program siz in dediğinizde kendi kendine "Demek ki sayi bundan küçük, o zaman bundan sonra en fazla söyleyeceğim sayı bu olsun, yani üst limit bu olsun" diyor ve ust:=tahmin ifadesi ile de bunu yapıyor. alt'in da mantığı ayni. Tahminini yaparken de alt ve ust değişkenlerini topluyor ve ikiye bölüyor. Programı çalıştırdığınızda fark etmişsinizdir zaten. İlk tahmin hep 500 oluyor. Ondan sonra in derseniz 250, çik derseniz 750 oluyor... Tahmin sayısının nasıl hesaplandığı da gayet basit. Her sayı tahmininde tahmin sayısı bir artırılıyor
Sayfa başına dön Aşağa gitmek
 
If Örnekleri
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
WwW.FoRumSTylE.TuRKpr0foRuM.NET :: Teknoloji üzerine herşey :: PROGRAMLAMA DİLLERİ :: PASCAL-
Buraya geçin: