Bu Blogda Ara

8 Aralık 2007 Cumartesi

Algoritmalar Ödevi Soru 3.2

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...

#include "stdio.h"
#include "conio.h"

int main (void)
{
int n;
printf("Dizinin eleman sayisini giriniz:");
scanf("%d",&n);
int d[n];
int t;
printf("Denemek istediginiz sayiyi giriniz:");
scanf("%d",&t);
for (int j=0; j< n; j++)
{
printf("Dizinin %d. elemanini giriniz:",j+1);
scanf("%d",&d[j]);
}
int k=0;
for (int i=0; i< n; i++)
{
if (d[i]< t) k++;
}
printf("Girdiginiz sayi dizideki %d tane elemandan buyuktur.",k);
getch();
}

Algoritmalar Ödevi Soru 3.1

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...

#include "stdio.h"
#include "conio.h"

int main(void)
{
int n;
printf("Dizinin eleman sayisini giriniz:");
scanf("%d",&n);
int d[n];
int i;
for (i=0; i< n; i++)
{
printf("Dizinin %d. elemanini giriniz:",i+1);
scanf("%d",&d[i]);
}
int b=0,s=0;
for (i=0; i{
if(d[i]>b)
{
b=d[i];
s=i;
}
}
int b2=0,s2=0;
for (i=0; i{
if ((d[i]>b2) && (i!=s))
{
b2=d[i];
s2=i;
}
}
printf("Girdiginiz 2. en buyuk eleman = %d",d[s2]);
getch();
}

Algoritmalar Ödevi Soru 2.6

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...

#include "stdio.h"
#include "conio.h"

int main(void)
{
int v=0,t=0,i=0;
printf("Anlik hizi beliryeleceginiz dakikayi giriniz:");
scanf("%d",&t);
for (i; i < 150; i++) {
if (t==i) break;
if (i<10) v+=4;
if (i>=130) v-=2;
}
printf("%d. dakikada geminin hizi %d mil/saat'tir.",t,v);
getch();
}

Algoritmalar Ödevi Soru 2.5

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...


#include "stdio.h"
#include "conio.h"
int main(void)
{
float x;
printf("y=f(x) fonksiyonu icin x degerini giriniz:");
scanf("%f",&x);
if ((x>-1) && (1>x))
printf("f(%f) = 1",x);
else
printf("f(%f) = 0",x);
getch();
}

Algoritmalar Ödevi Soru 2.4

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...


#include "stdio.h"
#include "conio.h"

int main(void)
{
int taban,us,i,carpim;
printf("Sayi tabanini giriniz:");
scanf("%d",&taban);
printf("Sayi ussunu giriniz:");
scanf("%d",&us);
carpim=1;
for (i=0; i< us; i++)
{
carpim*=taban;
}
printf("%d sayisinin %d. kuvveti %d'dir",taban,us,carpim);
getch();
}

Algoritmalar Ödevi Soru 2.3

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...


#include "stdio.h"
#include "conio.h"

int main(void)
{
int n;
int hedef;
printf("Yaklasmak istediginiz sayiyi giriniz:");
scanf("%d",&hedef);
printf("Dizi kac elemanli olacak?\n");
scanf("%d",&n);
int d[n];
for (int j=0; j< n; j++)
{
printf("Dizinin %d. elemanini giriniz:",j+1);
scanf("%d",&d[j]);
}

int delta,sira=0;
delta=hedef-d[0];
if (delta<0) delta*=-1;
int tmp;
for (int k=0; k< n; k++)
{
tmp=hedef-d[k];
if (tmp<0) tmp*=-1;
if (tmp< delta)
{
delta=hedef-d[k];
if (delta<0) delta*=-1;
sira=k;
}

}
printf("Girdiginiz sayiya en yakin eleman dizinin %d. elemani olan %d'dir.",sira+1,d[sira]);
getch();
}

Algoritmalar Ödevi Soru 2.2

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...



#include "stdio.h"
#include "conio.h"

int main(void)
{
int n,i,e=0,a=0;
printf("Kac tane tam sayi girmek istiyorsunuz?\n");
scanf("%d",&n);
int dizi[n];
for (i=1; i<=n; i++)
{
printf("%d. sayiyi giriniz:",i);
scanf("%d",&dizi[i]);

}
for (i=1; i<=n; i++)
{
if (dizi[i]>0)
{
a++;
printf("%d. girdiginiz %d sayisi pozitiftir.\n",i,dizi[i]);}
else {
e++;
printf("%d. girdiginiz %d sayisi negatiftir.\n",i,dizi[i]);}

}
printf("Toplam %d tane sayi girdiniz\nGirdiginiz bu sayilarin %d tanesi pozitif %d tanesi negatiftir.",n,a,e);
getch();
}

Algoritmalar Ödevi Soru 2.1

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...


#include "stdio.h"
#include "conio.h"

int main(void)

{
int i,k;
printf("Lutfen gireceginiz sayı adedini velirtiniz:");
scanf("%d",&i);
int a[i];

for (k=1; k<((i*2)+1); k++)
{
//printf("%d\n",k);
if (k<=i)
{
printf("Lutfen %d. sayiyi giriniz:",k);
scanf("%d",&a[i]);} else
{
if (a[(k-(i*2))]>0)
{
printf("%d. girdiginiz %d sayisi pozitiftir",k - (i*2),a[k % (i*2)]);

}
else
{
printf("%d. girdiginiz %d sayisi negatiftir",k - (i*2),a[k % (i*2)]);
}

}

}


getch();
}

Algoritmalar Ödevi Soru 1.3

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...


#include "stdio.h"
#include "conio.h"

int main(void)
{
int i,n,sonuc=0;
printf("Lütfen toplamak üzere bir sayi giriniz:");
scanf("%d",&n);
i=0;
do
{
sonuc+=i;
i++;
}
while (i<=n);
printf("%d sayisina kadar olan tüm sayilarin toplami %d 'dır",n,sonuc);
getch();
}

Algoritmalar Ödevi Soru 1.2

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...

#include "stdio.h"
#include "conio.h"

int main(void)
{
int i,n,sonuc=0;
printf("Lütfen toplamak üzere bir sayi giriniz:");
scanf("%d",&n);
i=0;
while (i<=n)
{
sonuc+=i;
i++;
}
printf("%d sayisina kadar olan tüm sayilarin toplami %d 'dır",n,sonuc);
getch();
}

Algoritmalar Ödevi Soru 1.1

//Sorular basit arkadaşlar açıklama yapmadan yayınlıyorum...

#include "stdio.h"
#include "conio.h"

int main(void)
{
int i,n,sonuc=0;
printf("Lütfen toplamak üzere bir sayi giriniz:");
scanf("%d",&n);
for (i=0;i<=n; i++)
{
sonuc+=i;
}
printf("%d sayisina kadar olan tüm sayilarin toplami %d 'dır",n,sonuc);
getch();
}

C++ 'ta NYP örneği

Algoritma ödevlerimden soru 6.1 için getirdiğim çözüm nesne yönelimli programlamaya örnek oluşturacağını düşündüm. Programın nesneleri şu şekilde:
Sıkıldığım için uygulamanın algoritmasını çizmedim kusura bakmayın :)

Soru 6.1 de 3 bilinmeyenli 3 denklemin çözümü istenmektedir.Soru Lineer Cebir dersinde gördüğümüz Kramer yöntemiyle çözülebilir.

Cevap 6.1

#include "iostream"
#include "conio.h"

// Dev-C++ Compiler

class ekran //ekran sınıfımız (şablon)
{
public:
void yaz(char *yazi); // ekran sınıfımızada bulunan ve dışarıdan erişilebilen (public) metodlar.
void yaz(double yazi);
void yenisatir();
void bekle();
void temizle();
int oku();
};


int ekran::oku() // fonksiyonların tanımları
{
int n;
std::cin>>n;
return n;
};
void ekran::temizle()
{
system("CLS");
};


void ekran::bekle()
{
getch();
};
void ekran::yenisatir()
{
std::cout<<"\n";
};
void ekran::yaz(char *yazi)
{
std::cout << yazi;
};
void ekran::yaz(double yazi) //OVERLOADING aşırı yükleme ;)
{
std::cout << yazi;
};




class denklem {
private:
int a,b,c,x;
public:
denklem();
void degerata(int d, int e, int f,int x);
int degeroku1();
int degeroku2();
int degeroku3();
int degerokux();
};

denklem::denklem()
{
degerata(1,1,1,0);
};
void denklem::degerata(int d, int e, int f, int g)
{
a=d;
b=e;
c=f;
x=g;
};
int denklem::degeroku1()
{
return a;
};
int denklem::degeroku2()
{
return b;
};
int denklem::degeroku3()
{
return c;
};







int denklem::degerokux()
{
return x;
};
class ds : public denklem
{

public:
ds(void);
denklem d1,d2,d3;
double delta();
double delta1();
double delta2();
double delta3();
double x1();
double x2();
double x3();
void goster(denklem dd);
};
void ds::goster(denklem dd)
{
ekran e1;
e1.yaz(dd.degeroku1());
e1.yaz("x(1)+");
e1.yaz(dd.degeroku2());
e1.yaz("x(2)+");
e1.yaz(dd.degeroku3());
e1.yaz("x(3) = ");
e1.yaz(dd.degerokux());
};
double ds::delta1()
{
ds td1;
td1.d1.degerata(d1.degerokux(),d1.degeroku2(),d1.degeroku3(),d1.degerokux());
td1.d2.degerata(d2.degerokux(),d2.degeroku2(),d2.degeroku3(),d2.degerokux());
td1.d3.degerata(d3.degerokux(),d3.degeroku2(),d3.degeroku3(),d3.degerokux());
return (td1.d1.degeroku1()*td1.d2.degeroku2()*td1.d3.degeroku3()+td1.d1.degeroku2()*td1.d2.degeroku3()*td1.d3.degeroku1()+td1.d2.degeroku1()*td1.d3.degeroku2()*td1.d1.degeroku3())-(td1.d1.degeroku3()*td1.d2.degeroku2()*td1.d3.degeroku1()+td1.d2.degeroku3()*td1.d3.degeroku2()*td1.d1.degeroku1()+td1.d1.degeroku2()*td1.d2.degeroku1()*td1.d3.degeroku3());
};
double ds::delta2()
{
ds td1;
td1.d1.degerata(d1.degeroku1(),d1.degerokux(),d1.degeroku3(),d1.degerokux());
td1.d2.degerata(d2.degeroku1(),d2.degerokux(),d2.degeroku3(),d2.degerokux());
td1.d3.degerata(d3.degeroku1(),d3.degerokux(),d3.degeroku3(),d3.degerokux());
return (td1.d1.degeroku1()*td1.d2.degeroku2()*td1.d3.degeroku3()+td1.d1.degeroku2()*td1.d2.degeroku3()*td1.d3.degeroku1()+td1.d2.degeroku1()*td1.d3.degeroku2()*td1.d1.degeroku3())-(td1.d1.degeroku3()*td1.d2.degeroku2()*td1.d3.degeroku1()+td1.d2.degeroku3()*td1.d3.degeroku2()*td1.d1.degeroku1()+td1.d1.degeroku2()*td1.d2.degeroku1()*td1.d3.degeroku3());
};
double ds::delta3()
{
ds td1;
td1.d1.degerata(d1.degeroku1(),d1.degeroku2(),d1.degerokux(),d1.degerokux());
td1.d2.degerata(d2.degeroku1(),d2.degeroku2(),d2.degerokux(),d2.degerokux());
td1.d3.degerata(d3.degeroku1(),d3.degeroku2(),d3.degerokux(),d3.degerokux());
return (td1.d1.degeroku1()*td1.d2.degeroku2()*td1.d3.degeroku3()+td1.d1.degeroku2()*td1.d2.degeroku3()*td1.d3.degeroku1()+td1.d2.degeroku1()*td1.d3.degeroku2()*td1.d1.degeroku3())-(td1.d1.degeroku3()*td1.d2.degeroku2()*td1.d3.degeroku1()+td1.d2.degeroku3()*td1.d3.degeroku2()*td1.d1.degeroku1()+td1.d1.degeroku2()*td1.d2.degeroku1()*td1.d3.degeroku3());
};
double ds::x1()
{
return (double)delta1()/delta();
};
double ds::x2()
{
return (double)delta2()/delta();
};
double ds::x3()
{
return (double)delta3()/delta();
};
double ds::delta()
{
return (d1.degeroku1()*d2.degeroku2()*d3.degeroku3()+d1.degeroku2()*d2.degeroku3()*d3.degeroku1()+d2.degeroku1()*d3.degeroku2()*d1.degeroku3())-(d1.degeroku3()*d2.degeroku2()*d3.degeroku1()+d2.degeroku3()*d3.degeroku2()*d1.degeroku1()+d1.degeroku2()*d2.degeroku1()*d3.degeroku3());
};
ds::ds(void)
{
};
int main(int argc, char* argv[])
{
ekran e;
ds ls;
int a1,a2,a3,b1,b2,b3,c1,c2,c3,x1,x2,x3;
e.yaz("a(11)x(1)+a(12)x(2)+a(13)x(3)=b(1)");
e.yenisatir();
e.yaz("a(21)x(1)+a(22)x(2)+a(23)x(3)=b(2)");
e.yenisatir();
e.yaz("a(31)x(1)+a(32)x(2)+a(33)x(3)=b(3)");
e.yenisatir();
e.yaz("Formatinda bir denklem sisteminin degerlerini girelim...\n");
e.yaz("a(11):");
a1=e.oku();
e.yaz("a(12):");
b1=e.oku();
e.yaz("a(13):");
c1=e.oku();
e.yaz("b(1):");
x1=e.oku();
ls.d1.degerata(a1,b1,c1,x1);
e.yaz("a(21):");
a2=e.oku();
e.yaz("a(22):");
b2=e.oku();
e.yaz("a(23):");
c2=e.oku();
e.yaz("b(2):");
x2=e.oku();
ls.d2.degerata(a2,b2,c2,x2);
e.yaz("a(31):");
a3=e.oku();
e.yaz("a(32):");
b3=e.oku();
e.yaz("a(33):");
c3=e.oku();
e.yaz("b(3):");
x3=e.oku();
ls.d3.degerata(a3,b3,c3,x3);
ls.goster(ls.d1);
e.yenisatir();
ls.goster(ls.d2);
e.yenisatir();
ls.goster(ls.d3);
e.yenisatir();
e.yenisatir();
e.yaz("Delta = ");
e.yaz(ls.delta());
e.yenisatir();
e.yaz("Delta1 = ");
e.yaz(ls.delta1());
e.yenisatir();
e.yaz("Delta2 = ");
e.yaz(ls.delta2());
e.yenisatir();
e.yaz("Delta3 = ");
e.yaz(ls.delta3());
e.yenisatir();
e.yenisatir();
if (ls.delta()==0)
{ if (ls.delta1()==0)
{ e.yaz("Denklemin Sonsuz Cozumu vardir..!");
e.bekle();
return 0;

} else { e.yaz("Denklemin Cozum kumesi yoktur..!");
e.bekle(); return 0;
} }
e.yenisatir();
e.yaz("x1 = ");
e.yaz(ls.x1());
e.yenisatir();
e.yaz("x2 = ");
e.yaz(ls.x2());
e.yenisatir();
e.yaz("x3 = ");
e.yaz(ls.x3());
e.bekle();
return 0;
}

12 Ekim 2007 Cuma

Ramazan Bayramı

Tüm islam aleminin Ramazan bayramı mübarek olsun. Umarım bu bayram vesilesiyle dargınlar barışır, hatalar giderilir. İyi bayramlar...

10 Ekim 2007 Çarşamba

PHP ile Nesne Yönelimli Programlama Örneği

Nesne yönelimli programlamaya php ile bir örnek kod hazırladım. Kod basit olarak formdan gelen verileri derleyerek yöneticimize e-mail olarak gönderiyor. Kod üzerinde yeterince açıklama yaptım. Umarım faydalı olur. Eklemeler devam edecektir...

<?
/* E-mail send script using OOP by Ramazan Bellek (c) 2007
contact: ramazanbellek[at]gmail.com
This is a freeware that you can use it without modify!
Have fun... */

class mail_obje //ileti göndermek için bir nesne oluşturuyoruz.
{
var $kime,$konu,$hata,$baslik,$isim,$soyisim,$mail,$tel,$marka,$soru; // değişkenlerimizi tanımlıyoruz.

function degiskenler($kime,$konu,$hata,$baslik,$isim,$soyisim,$mail,$tel,$marka,$soru) // değişkenlerin formatını kontrol eden fonksiyon
{
function is_email($user_email) // internetten bulduğum e-mail adresinin formatını kontrol eden bir fonksiyon :)
{
$chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";
if(strstr($user_email, '@') && strstr($user_email, '.')) {
if (preg_match($chars, $user_email)) {
return true;
} else {
return false;
}
} else {
return false;
}
}
//değişkenlerimizi nesnemize atıyoruz.
$this->alici = $kime;
$this->konu = $konu;
$this->sorun = $hata;
$this->baslik = $baslik;
if ($isim=="") die("İsim Alanı Boş Bırakılamaz...".'<a href="javascript:history.go(-1);">Geri Dön</a>');
$this->ad = $isim;
if ($soyisim=="") die("Soyisim Alanı Boş Bırakılamaz...".'<a href="javascript:history.go(-1);">Geri Dön</a>');
$this->soyad = $soyisim;
if ($mail=="") die("E-mail Alanı Boş Bırakılamaz...".'<a href="javascript:history.go(-1);">Geri Dön</a>');
if (!is_email($mail)) die("Geçersiz e-mail adresi...".'<a href="javascript:history.go(-1);">Geri Dön</a>');
$this->posta = $mail;
if ($tel=="") die("Telefon Alanı Boş Bırakılamaz...".'<a href="javascript:history.go(-1);">Geri Dön</a>');
if (!intval($tel)) die("Lütfen telefon numarasını rakamlarla giriniz...".'<a href="javascript:history.go(-1);">Geri Dön</a>');
$this->telefon = $tel;
if ($marka=="") die("Marka Alanı Boş Bırakılamaz...".'<a href="javascript:history.go(-1);">Geri Dön</a>');
$this->arac = $marka;
if ($soru=="") die("Soru Alanı Boş Bırakılamaz...".'<a href="javascript:history.go(-1);">Geri Dön</a>');
$this->sorusu = $soru;
}
function gonder() // iletiyi gönderen fonksiyonumuz.
{
$kime = $this->alici;
$konu = $this->konu;
$baslik = $this->baslik;
$mesaj = "Kimlik: ".$this->ad." ".$this->soyad."\n"."Araç Markası: ".$this->arac."\n"."Telefon: ".$this->telefon."\n"."SORU?:"."\n".$this->sorusu;
mail($kime,$konu,$mesaj,$baslik) || die($hata); // php mail gönderme fonksiyonu.
echo "İletiniz başarıyla gönderilmiştir...".'<a href="javascript:history.go(-1);">Geri Dön</a>';
}
}
if (!isset($_GET['gonder'])) {
echo "Bu sayfaya direk erişim yasaktır..!".'<a href="javascript:history.go(-1);">Geri Dön</a>';
exit();
}


/* -------------------AYARLAR---------------------- */
$email = "isim@hotmail.com";
$hatamesaj = "Şu anda teknik bir sorundan dolayı iletinizi gönderemiyoruz. Lütfen Daha sonra tekrar deneyiniz...".'<a href="javascript:history.go(-1);">Geri Dön</a>';
$konu = "Bir sorunum var..?";
$baslik = "FROM: ".$_POST['isim']." ".$_POST['soyisim']." <".$_POST['mail'].">";
$baslik .= "Reply-to: ".$_POST['isim']." ".$_POST['soyisim']." <".$_POST['mail'].">";
/* ----------------AYARLAR SON---------------------- */



$nesne = new mail_obje();
$nesne->degiskenler($email,$konu,$hatamesaj,$baslik,$_POST['isim'],$_POST['soyisim'],$_POST['mail'],$_POST['tel'],$_POST['marka'],$_POST['soru']);
$nesne->gonder();
unset($nesne);
?>

7 Ekim 2007 Pazar

PHP Security Engine

Şu anda üzerinde çalıştığım son projem web uygulamalarında güvenliği sağlamak amaçlıdır. Geçen sene BellekSoft adı altında yayınlamayı düşündüğüm ve sadece fikir olarak var olan projeyi artık resmen kodlamaya başladım. http://www.belleksoft.com/ şu anda teknik bir nedenden dolay malesef kapalı. Ben uygulamayı http://www.sourceforge.net/ adresinden GPL (General Public Licence) olarak yayınlayacağım. İsterseniz ben lafı fazla unutmadan uygulamadan biraz bahsediyim.



PHP Security Engine 1.0

Uygulama İngilizce ve Türkçe olmak üzere şimdilik iki dili destekliyor. Sitenize uygulamayı kurmak için öncelikle sitenizdeki tüm dosyaları bilgisayarınızda barındırmanız gerekiyor. Delphi ile yazdığım win32 tabanlı bir uygulama var. Bu uygulamayı kullanarak sitenizdeki tüm dosyaları PHP Security Engine ile uyumlu hale getirebiliyorsunuz. Ayrıca tüm güvenlik ve uygulama ayarlarını bu uygulama üzerinden yapabiliyorsunuz. İsterseniz bu akıllı uygulamayı kullanarak ileride sitenize ani müdehalelerde yapabilirsiniz. Tabiki web siteniz üzerinden de kontrol edebiliyorsunuz ama sağlıklı bir kurulum için uygulamayı kurmanız şart!

Sistem Nasıl Çalışıyor?

Sistem sanılanın aksine çok basit ve etkili bir fitreleme kullanarak faal oluyor. Öncelikle sitenize gelen tüm sorgulama verileri bir merkezde toplanıyor ve küçük bir karar mekanizmasından geçerek sorgunun sıradan mı yoksa bir hack girişimi mi olduğuna karar veriliyor. Saldırı tesipi durumunda iste kullanıcının önceden belirlediği işlemler gerçekleştiriliyor. IP adresi engellenebilir, erişim bir süreliğine yada anlık olarak engellenebilir, yada özel olarak geliştirdiğim Ajan modu (agent mode) ile saldırgan farkına varmadantakip edilebilir. Sitenize bir saldırı olduğun bunu size e-mail olarak bildirebilir ve siz pc başında olmasanız bile WAP üzerinden sitenizi kapatıp açabilirsiniz (acil durumlar için geçerli, sistem zaten saldırganları engelleyecektir!)

Hangi Tür Saldırılar Engelleniyor?

XSS, RFI, SQL inj. gibi açıklar rahat bir şekilde engellenebiliyor. İsterse kullanıcı kendi kuralını oluşturabiliyor.


// Yazının devamı detaylı bir şekilde çok yakında eklenecektir... //

Kişisel Blog Sayfama Hoşgeldiniz...

Bir süreliğine gelişmeleri buradan yayınlayacağım...