WarTurks Yazılım&Programlama
Yazılım&Programlama  
  Ana Sayfa
  Paralı Hizmetlerimiz
  Visual Basic'e Giris
  VB İndirmeli Dersler[Artık Tüm Dersler Burda]]
  Visual Basic 6 Dersleri
  Visual Basic 6 Dersleri 2
  Visual Basic Ders Notlari[Resimli]
  Pascala Giris
  Pascal Dersleri
  Php'ye Giris
  Php Dersleri
  C ve C++'ya Giris
  C ve C++ Dersleri
  C++ Ders Notlari [Resimli]
  İletişim
Pascal Dersleri
For Döngüsü

For - to [downto] - do Döngüsü:

Eger bir sayinin degerini belirli bir degerden baslayip yine belirli bir degere kadar 1'er 1'er artirmak ve her artirma isleminde de istenilen islemleri yapmak isterseniz bu döngüyü kullanabilirsiniz. Cümle biraz karisik olmus olabilir ama komutun kullanimi gayet basit:

For degisken:=baslangiç_degeri to bitis_degeri do islem...
ya da birden çok islem yapacaksaniz:

For degisken:=baslangiç_degeri to bitis_degeri do Beginislem 1islem 2islem 3......End;
seklinde kullanabilirsiniz. Burada her seferinde sayi:=sayi+1 isleminden kurtulmus oluyoruz. For döngüsü (bitis_degeri - baslangiç_degeri+1) kadar yapilacaktir. Mesela baslangiç degeri 3, bitis degeri 7 ise döngü (7-3) 5 defa yapilir. Çünkü döngü 3'den basliyor ve 3,4,5,6,7 olmak üzere 5 deger aliyor. Bu durumda 5 defa yapilir ve her seferinde degiskenin degeri degisir. Lafi uzatmadan 1'den 10'a kadar olan sayilari ekrana yazdiralim:

Program GercekDongu;Uses crt;vara:integer;begin clrscr;for a:=1 to 10 do writeln(a);readln;end.
Iste size çok kisa bir program. Repeat ile daha uzun yazdigimizi hatirlayin. Peki bir de bu sayilarin karesini de yazalim:

Program GercekDongu2;Uses crt;
var
a,kare:integer;
begin
clrscr;
for a:=1 to 10 do
begin
kare:=a*a;writeln(a,' -> ',kare);end;
{For döngüsünün sonu}
readln;
end.
hatta buna bile gerek duymadan

Program GercekDongu3;Uses crt;
var
a:integer;
begin clrscr;
for a:=1 to 10 do writeln(a,' -> ',a*a);
readln;
end.
yapabilirsiniz. Peki simdi de bir sayinin faktoriyelini bulalim. Faktoriyel'i biliyorsunuzdur herhalde. Mesela 3 faktoriyel demek 1x2x3 demektir ve sonucu 6 olur. 5 faktoriyel ise 1x2x3x4x5 demektir ve sonucu 120 olur. Simdi girilen bir sayinin faktoriyelini bulalim:

Program GercekDongu_FaktoriyelBul;Uses crt;
var
a, sayi:integer;
fakt:longint;
begin
clrscr;
write('Kaç faktoriyel olsun: ');
readln(sayi);
fakt:=1;
for a:=1 to sayi do
fakt:=fakt*a;
writeln(sayi,'! = ',fakt);end.
Simdiye kadar neredeyse hep matematiksel islemler yaptik. Simdi de görsel birsey yapalim. Mesela bir yaziyi ekranin sol üst kösesinden baslayarak saga dogru kaydiran bir program yapalim:

Program Yaziyi_Kaydir;Uses crt;
var
a:byte;
yazi:string;
begin
clrscr;yazi:='sensizolmuyor.org';
for a:=1 to 50 do
begingotoxy(a,1);
write(yazi);
delay(50);
clrscr;
end;
end.
Eger yazi çok hizli kayiyorsa delay(50); degerini artirin, yavas kayiyorsa azaltin. Delay'i sonra anlatiriz. Simdi de bir yaziyi çapraz olarak ekrana yazalim. Ama yazi en fazla 24 harf olsun:

Program Yazdir_Bakalim;
Uses crt;
var
a:byte;
yazi:string;
uz:byte;
begin clrscr;
write('Bir yazi yazin (En fazla 24 harf): ');
readln(yazi);
uz:=length(yazi);
clrscr;
for a:=1 to uz do
begingotoxy(a,a);
write(yazi[a]);
gotoxy(80-a,a);
write(yazi[a]);
gotoxy(40,a);
write(yazi[a]);
end;
readln;
end.
Yaziyi ekrana üç farkli sekilde yazdiriyoruz. Burada kullandigimiza yazi[a] 'yi önceden anlatmistik. mesela yazi[5] o yazinin 5. harfidir. Örnegin yazi:='Seckin'; ise yazi[2]='e' olur.
For döngüsünün ikinci kullanimi da to yerine downto iledir. Bu sekilde sayi 1'er 1'er artacaginza 1'er 1'er azalir. Bunun için baslangiç degeri bitis degerinden büyük olmalidir. Simdi de 200'dan 1'e kadar olan sayilari yan yana yazalim.

Program asagigit;
uses crt;
var
a:byte;
begin
clrscr;
for a:=200 downto 1 do
write(a:4);
eadln;
end.
Bir de girilen 10 tane sayidan 10'dan büyük olan sayilar ile 10'dan küçük olan sayilarin sayisini bulan programi yapalim:

Program bul_bakalim;
Uses crt;
var
b,k,o:byte;
a:byte;
sayi:byte;
begin
clrscr;
k:=0;
b:=0;
o:=0;
for a:=1 to 10 do
begin
write('Bir sayi giriniz: ');
readln(sayi);
if sayi<10 then k:=k+1;
if sayi>10 then b:=b+1;
if sayi=10 then o:=o+1;
end;
clrscr;
writeln('10''dan küçük olanlar: ',k,' tane.');
writeln('10''dan büyük olanlar: ',b,' tane.');
writeln('Girilen 10 sayisi: ',o,' tane.');readln;end


-------------------------------------------------------------------------------------------------------------------------------------------------------------
Bazı formüllerin hesaplanması


1-)y=3x2-kök içinde 3x2+0.5x
2-)y=3x-kök içinde x
3-)y=kök içinde 12x2 bölü 2kök2x
Yaptıkca formülleri ekliyecem istek yapabilirsiniz yapmaya calısırım
1. sorunun cevabı;

uses crt;
var
x:integer;
y:real;
begin
clrscr;
writeln('bir sayi giriniz');
readln(x);
y:=3*x*2-sqrt(3*x*2+0.5*x);
writeln('sonuc...=',y:10:4);
readln;
end.
 

2. sorunun cevabı;

uses crt;
var
x:integer;
y:real;
begin
clrscr;
writeln('bir sayi giriniz');
readln(x);
y:=3*x-sqrt(x);
writeln('sonuc...=',y:10:4);
readln;
end.

3.sorunun cevabı;

uses crt;
var
x:integer;
y:real;
begin
clrscr;
writeln('bir sayi giriniz');
readln(x);
y:=sqrt(12*x*2/2sqrt(2*x));
writeln('sonuc...=',y:10:4);
readln;

end.

-------------------------------------------------------------------------------------------------------------------------------------
Faiz Programı Yapımı:

Faiz Programı 
Yıllık Ana paraya gelecek faizi hesaplar
,2 çeşit faiz hesabı yapar
...
Program faiz_programi
;
uses crt
;

var

{
Toplam=T}T:real
;
{
Ana Para=A}A:integer
;
{
Süre-senelik}n:integer
;
{
Senelik Faiz}f:integer
;
{
Ay Sayısı}As:integer
;
{
Para Türü}tur:string
;
{
sayaç}i:integer
;
secim:char
;

label
bas
,son,bit1,bit2
;

procedure Birlesik_Faiz
;

begin
clrscr
;
writeln(' *** BiRLEŞİK FAİZ ***'
);
writeln(' ============= '
);
writeln
;
T:=0
;
for 
i:=1 to n 
do
begin
T
:=A*exp(i*ln(1+f/100
));
if 
i=20 then readkey
;
if 
i<10 then writeln(' ',i,'. Sene sonunda => ',T:0:0,' ',tur
);
if ((
i>9) and (i<100)) then writeln(' ',i,'. Sene sonunda => ',T:0:0,' ',tur
)
else
if 
i>99 then writeln(' ',i,'.Sene sonunda => ',T:0:0,' ',tur
);
end
;
readln
;
end
;

procedure Kapital_buyutme
;
begin
clrscr
;
writeln(' *** KAPİTAL BÜYÜTME (YATIRIM) ***'
);
writeln(' ========================= '
);
writeln
;
T:=0;i:=0
;
for 
n:=n downto 1 
do
begin
T
:=T+(A*exp(n*ln(1+f/100
)));
i:=i+1
;
if 
i=20 then readkey
;
begin
if ((i<10) and (n>99)) then writeln(' ',i,'. ödeme ',n,' sene boyunca => ',T:0:0,' ',tur
);
if ((
i<10) and ((n>9) and (n<100))) then writeln(' ',i,'. ödeme ',n,' sene boyunca => ',T:0:0,' ',tur
);
if ((
i<10) and (n<10)) then writeln(' ',i,'. ödeme ',n,' sene boyunca => ',T:0:0,' ',tur
);

if (((
i>9) and (i<100)) and (n>99)) then writeln(' ',i,'. ödeme ',n,' sene boyunca => ',T:0:0,' ',tur
);
if (((
i>9) and (i<100)) and ((n>9) and (n<100))) 
then
writeln
(' ',i,'. ödeme ',n,' sene boyunca => ',T:0:0,' ',tur
);
if (((
i>9) and (i<100)) and (n<10)) then writeln(' ',i,'. ödeme ',n,' sene boyunca => ',T:0:0,' ',tur
);

if ((
i>99) and (n>99)) then writeln(' ',i,'.ödeme ',n,' sene boyunca => ',T:0:0,' ',tur
);
if ((
i>99) and ((n>9) and (n<100))) then writeln(' ',i,'.ödeme ',n,' sene boyunca => ',T:0:0,' ',tur
);
if ((
i>99) and (n<10)) then writeln(' ',i,'.ödeme ',n,' sene boyunca => ',T:0:0,' ',tur
);
end
;
end
;
readln
;
end
;


begin
bas
textbackground(1);textcolor(14);clrscr
;
writeln(' *** FAİZ HESAPLAMA PROGRAMI ***'
);
writeln(' ======================= '
);
writeln
;
writeln(' ***91;1***93; - Birleşik Faiz'
);
writeln(' ***91;2***93; - Kapital Büyütme(Yatırım)'
);
writeln(' ***91;0***93; - Program dan çıkış'
);
writeln
;
write'Seçiminiz => ');readln(secim
);
writeln
;
writeln
;
case 
secim of
'1':
begin
write
(' Ana Para : ');readln(A
);
if 
A=0 then goto bit1
;
write(' Faiz % : ');readln(f
);
if 
f=0 then goto bit1
;
write(' Süre(Sene/Ay) : ');readln(n
);
if 
n=0 then goto bit1
;
write(' Para Türü : ');readln(tur
);
if 
tur='0' then goto bit1
;
writeln
;
write(' Hesaplama için bir tuşa basınız...');readkey
;
Birlesik_Faiz
;
bit1end
;
'2':
begin
write
(' ödenecek Para : ');readln(A
);
if 
A=0 then goto bit2
;
write(' Faiz % : ');readln(f
);
if 
f=0 then goto bit2
;
write(' Süre(Sene/Ay) : ');readln(n
);
if 
n=0 then goto bit2
;
write(' Para Türü : ');readln(tur
);
if 
tur='0' then goto bit2
;
writeln
;
write(' Hesaplama için bir tuşa basınız...');readkey
;
Kapital_Buyutme
;
bit2end
;
'0':goto son
;
end
;
goto bas
;
sonclrscr
;

End

---------------------------------------------------------------------------
While Döngüsü

While döngüsünün mantigi da aslinda Repeat'a benzer. Repeat'a "Su sart olana kadar döngüyü sürdür" diyorsak While'a da "Su sart oldugu sürece döngüyü sürdür" diyoruz. While kelimesinin anlami "iken", do kelimesinin anlami ise "yap" demektir. Bu durumda "While sart do" ise "sart dogru iken yap" anlamindadir. While döngüsünün Genel Kullanimi;

while (sart ya da sartlar) do islem...
seklinde olup birden çok islem yaptirilmak istendiginde begin-end blogu kullanilir

while (sart ya da sartlar) do beginislem 1islem 2islem 3......end;
Simdi repeat ile yaptigimiza 1'den 10'a kadar sayilari yazdirma islemini while ile yapalim:

Program while_denemesi;
uses crt;
Var
sayi:byte;
begin
clrscr;
sayi:=1;
while (sayi<=10) do
begin
writeln(sayi);
sayi:=sayi+1;
{Sayi'nin degeri 1 artiriliyor}
end;
{While dongusunun sonu}
readln;{Enter'a basilmasi bekleniyor...}
end.{Programin Sonu}
Bu progarmdaki döngü Türkçe'ye "sayi 10'dan küçük ya da 10'a esit oldugu sürece begin ile end arasindaki islemleri yap" ya da "sayi 11'den küçük iken su islemleri yap.." diye tercüme edilebilir.
--------------------------------------------------------------------------------------------------------------------------------------------
Sinüs Cosinüs hesaplama

Bir cok kişinin sevmedigi bir konudur karısık bir konudur yardımcı olduysam ne mutlu bana


uses crt;
var
i:integer;
begin
clrscr;
writeln('derece sinus kosinus');
writeln('------ ----- -------');
i:=0;
repeat
writeln(i:3,sin(i*pi/180):15:4,
cos(i*pi/180):15:4);
inc(i,30);
until i>61;
readln;
end.

---------------------------------------------------------------------------------------------------------------------------
Pascala Renk Katalım Biraz

Pascaldaki siyah ekrandan sıkıldıkmı programlarınızı baska renklerlemi göstermek istiyorsunuz buyrun

Textbackground : Ekrana yazdırılacak yazının zemin rengini ayarlamak için kullanılır. Bu komut sadece Turbo/Borland Pascalda kullanılabilir. Kullanımı; Textbackground(renk kodu);
Örnek 6:
uses crt;
begin
textcolor(green);textbackground(black);
writeln('merhaba');
textcolor(lightred+blink);textbackground(lightgray );
writeln('günaydın!');
textcolor(14); textbackground(blue);
writeln('nasılsın');
normvideo;
end.

Sound/Nosound : Sound verilen frekansta ses üretmek için kullanılır. Nosound sound ile üretilen sesi ortadan kaldırmak için kullanılır.
Örnek 7:
uses crt;
begin
sound(220);
delay(200);
nosound;
end.
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Pascal Girilen Sesli harfi renkli yazdırma

uses crt;
var
kelime:string;
sayac:integer;
uzunluk:integer;
begin
clrscr;
writeln('Kelimeyi giriniz');readln(kelime);
uzunluk:=length(kelime);
for sayac:=1 to uzunluk do
begin
if kelime[sayac] in ['a','A','e','E','i','İ','ı','I','o','O','ö','Ö','u ','U','ü','Ü'] then
textcolor(red)
else
textcolor(white);
write(kelime[sayac]);
end;
readkey;
end.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Pascalda Yılan Oyunu Yapalım



NOT:bunu pascal 7.0 a yazdıgınz zaman(pascal kurallarına uyarak) güzel bir yılan oyunu karsınıza cıkıyor

uses dos,crt;
procedure yilan;
var
x,y:array [1..999] of integer;
boyx,boyy:array [1..1000] of integer;tus:char;
p,ex,ey,s,i,yx,yy,yon,k:integer;
regs:registers;
procedure kursoryok;
begin
regs.ch:=$1F;
regs.cl:=$0;
regs.ah:=$1;
regs.al:=$0;
intr($10,regs);
end;
begin
textbackground(0);
CLRSCR;
kursoryok;
yx:=11;yy:=10;yon:=1;k:=4;textcolor(2);textbackgro und(0);
boyx[1]:=10;boyy[1]:=10;s:=1;randomize;
ex:=(random(75))+4;ey:=(random(19))+4;gotoxy(ex,ey );write('o');
repeat
textcolor(4);textbackground(0);

textcolor(2);textbackground(0);
gotoxy(ex,ey);write('o');
tus:=' ';if (yx=ex) and (yy=ey) or (yx+1=ex) and (yy+1=ey) then begin
gotoxy(ex,ey);write('Û'); ex:=(random(75))+4;ey:=(random(19))+4;p:=1;
end;gotoxy(yx,yy);write('ÛÛ');
gotoxy(1,1);delay(4000);gotoxy(boyx[s],boyy[s]);write(' ');
if keypressed then tus:=readkey;
for i:=1 to s do begin x[i]:=boyx[i];y[i]:=boyy[i];end;
boyx[1]:=yx;boyy[1]:=yy;
for i:=2 to s do begin boyx[i]:=x[i-1];boyy[i]:=y[i-1];end;
if p=1 then begin s:=s+1;if (s mod 5=0) then p:=0;end;
if tus=#27 then exit;
if (tus=#72) and (k<>2) then k:=1;
if (tus=#80) and (k<>1) then k:=2;
if (tus=#75) and (k<>4) then k:=3;
if (tus=#77) and (k<>3) then k:=4;
if k=1 then yy:=yy-1;
if k=2 then yy:=yy+1;
if k=3 then yx:=yx-1;
if k=4 then yx:=yx+1;
if (yy<3) or (yy>22) then break;
if (yx<3) or (yx>77) then exit;
if (s=1000) then exit;
for i:=1 to s do if (yx=boyx[i]) and (yy=boyy[i]) then exit;
kursoryok;
until tus=#27;textcolor(15);textbackground(0);clrscr;got oxy(1,8);
clrscr;
kursoryok;
gotoxy(30,12);write('OYUN B***732;TT***732;');
READLN;
end;
begin
clrscr;
yilan;
end.
---------------------------------------------------------------------
En Büyük Olanı Bulma (3 sayıdan en büyüğünü bulan program örneği, dizi ile)


uses crt;
var
i,enb:integer;
dizi:Array[1..10] of integer;
begin
clrscr;
for i:=1 to 3 do
begin
  write('dizi[',i,']: '); readln(dizi[i]);
end;
enb:=dizi[1];
for i:=1 to 3 do
begin
  if (enb < dizi[i]) then
  begin
   enb:= dizi[i];
  end;
end;
writeln('en buyuk sayi: ',enb);
readln;
end.
Yazılım&Programlama  
   
Reklam  
   
 
   
 
   
 
   
 
   
Bugün 1 ziyaretçi (31 klik) kişi burdaydı!
=> Sen de ücretsiz bir internet sitesi kurmak ister misin? O zaman burayı tıkla! <=