Archive: Programlama

En İyi Kodlama Kapışmaları Siteleri

Programlamayı öğrenmek ve bir üst seyiveyey çıkmak için kodlama kapışmaları içeren, problemleri kodlayarak çözdüğünüz en iyi web sitelerini sıraladım. Sıralama karışık ben codewars , sololearn, hackerrank ve projecteuler sitelerini denedim. Birbirlerinden üstün ve geride olduğu yönleri var. Yeni başlayanlar için sololearn ve hackerrank daha uygun.

  1. Codewars.com
  2. coderbyte.com
  3. topcoder.com
  4. codechef.com
  5. hackerrank.com
  6. codinggame.com
  7. sololearn.com
  8. projecteuler.com
  9. hackerearth.com
  10. spoj.com
  11. codeforces.com
  12. geeksforgeeks.org
  13. codingbat.com
  14. leetcode.com

Artırılmış Gerçeklik Uygulaması Quiver

Artırılmış gerçeklik (Augmented Reality)

Quiver artırılmış gerçeklik kullanarak geliştirilmiş eğlenceli bir uygulama. quivervision.com sitesinden indirebileceğiniz uygalamanın çalşma prensibi çok basit. sitesinde buunan boyama sayfalarının çıktılarını alıp boyuyorsunuz ve uygulamaya taratıyorsunuz. Videoyu izleyince daha iyi anlayacağınız uygulama çoçukların çok hoşuna gidecek.

Artırılmış gerçeklik (Augmented Reality)

Artırılmış gerçeklik (Augmented Reality)

Artırılmış gerçeklik

Artırılmış gerçeklik (Augmented Reality), gerçek dünyadaki çevrenin ve içindekilerin bilgisayar tarafından üretilen ses, görüntü, grafik ve GPS verileriyle zenginleştirilerek meydana getirilen canlı, doğrudan veya dolaylı fiziksel görünümüdür. Bu kavram kısaca gerçekliğin bilgisayar tarafından değiştirilmesi ve artırılmasıdır. Teknoloji kişinin gerçekliği zenginleştirme işlevi görür. Buna karşın sanal gerçeklikte ise gerçek dünya yerine tasarlanıp canlandırılmış bir dünya vardır.

Zenginleştirme gerçek zamanlı gerçekleşir ve çevredeki ögeler ile etkileşim içindedir. Gelişen zenginleştirilmiş gerçeklik teknolojisinin de yardımıyla kullanıcı etrafındaki bilgi ile etkileşime girebilir ve sözü geçen sayısal bilgi işlenme ve ayartmaya el verişlidir. Bulunulan çevreyle ilgili yapay bilgi ve ögeler gerçek dünyayla bağdaşabilir. Zenginleştirilmiş gerçeklik teriminin literatüre 1990 yılında Boeing üzerinde çalışan Thomas Caudell tarafından kazandırıldığına inanılır. (Wiki)

C# İle Tek ve Çift Sayılarının Bulunması

Bir okuyucumuzun sorusu üzerine tek ve çift sayıların C# ile bulunması örneği yapıyoruz. Temel mantık sayının modu alınır. Mod 2 işlemi gerçekleştirilir. İşlem sonucu 0 ise sayı çift sonuç 1 ise sayı tek sayıdır.
Okuyucumuzun sorusu :” 1den kullanicinin belirleyecegi sayiya kadar olan sayilardan tek sayilarin karesini cift sayilarin kupunu alip ekrana yazdiran programi c# console aplication da yaziniz.”” şeklindeydi.

Sorununn cevabı şu şekilde olacak.

 static void Main(string[] args)
        {
            //1den kullanicinin belirleyecegi sayiya kadar olan sayilardan tek sayilarin karesini cift sayilarin 
            //kupunu alip ekrana yazdiran programi c# console aplication da yaziniz.

            Console.Write("Sayısı Giriniz = ");
            int sayi =Convert.ToInt16(Console.ReadLine());
            int tekToplam =0;
            int ciftToplam =0;
            for (int i = 0; i <= sayi; i++)
            {
                if (i % 2 == 0)
                {
                    ciftToplam = i * i * i;
                    Console.WriteLine(i + " sayısının küpü   = " + ciftToplam);
                }
                else
                { 
                    tekToplam = i * i;
                    Console.WriteLine(i + " sayısının karesi  = " +  tekToplam);
                }


            }
            Console.ReadKey();

        }

ActionScript 3.0 Film Klipi Olayları

Actionscript 3.0 le film kliplerini yönetmek için kullanılan temel yöntemleri içeren örnek bir uygulama paylaşıyoruz. Film klipini döndürmek, büyütüp-küçültmek, konumunu değiştirmek ve başka özelliklerine kodla müdahale edebilmek tüm özellikleri kullandığımız temel bir uygulama geliştirdik.

Sahnemizde “kare_mc” isimli bir film klipi çiziyoruz. Resimde görüldüğü gibi düğmeler yerleştiriyoruz.

Düğmeleri Pencere(window)/Bileşenler(components)/User Interface yolunu izleyerek ekleyebilirsiniz. Düğmelerin label parametresini istediğiniz gibi ayarlayabilirsiniz. Ancak düğmelere isim vermeyi unutmayın.

Komutlarımız :

x10_btn.addEventListener(MouseEvent.CLICK, arttır);

function arttır(event:Event):void

{

kare_mc.x=kare_mc.x+10;

}

ex10_btn.addEventListener(MouseEvent.CLICK, azalt);

function azalt(event:Event):void

{

kare_mc.x=kare_mc.x-10;

}

y10_btn.addEventListener(MouseEvent.CLICK, yon);

function yon(event:Event):void

{

kare_mc.y=kare_mc.y+10;

}

ey10_btn.addEventListener(MouseEvent.CLICK, yonlendır);

function yonlendır(event:Event):void

{

kare_mc.y=kare_mc.y-10;

}

vısıble_btn.addEventListener(MouseEvent.CLICK, gorunmez);

function gorunmez(event:Event):void

{

kare_mc.visible=true;

}

evısıble_btn.addEventListener(MouseEvent.CLICK, gor);

function gor(event:Event):void

{

kare_mc.visible=false;

}

C# İle Daha Kaliteli Thumbnail Resimler Oluşturma

C# .NET ile thumbnail resimler oluşturmak oldukça kolay. Image sınıfında yeralan GetThumbnailImage methodu ile kolayca resimleriniz için küçük önizleme resimleri thumbnail images oluşturabilirsiniz.
Aşağıdaki örnekte .NET içindeki Image sınıfı içindeki GetThumbnailImage metodunun kullanımına örnek basit bir uygulamayı görüyorsunuz.

public void createThumbnail(Image originalImage, int thumbWidth, int thumbHeight, string thumbFullPath)
{
using(FileStream fs = File.Create(thumbFullPath))
{
Image newImage = originalImage.GetThumbnailImage(thumbWidth, thumbHeight, new Image.GetThumbnailImageAbort(OnGetThumbnailImageAbort), IntPtr.Zero);
newImage.Save(fs, originalImage.RawFormat);
newImage.Dispose();
}
}
private static bool OnGetThumbnailImageAbort()
{
return false;
}

Asıl mevzuya dönecek olursak yukarıdaki örnekte kullandığımız GetThumbnailImage metdouyla otomatik olarak oluşturulan resim önizlemelerin daha kalitelisini oluşturabilmek için farklı bir yöntem kullnmamız gerekecek. Allta yer alan yöntem ile artık daha kaliteli thumbnail küçük resimler oluşturabiliriz.

public void createThumbnail(Image originalImage, int thumbWidth, int thumbHeight, string thumbFullPath)
{
using(FileStream fs = File.Create(thumbFullPath))
{
Bitmap newImage = new Bitmap(originalImage, thumbWidth, thumbHeight);
Graphics g = Graphics.FromImage(newImage);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
g.DrawImage(image, 0, 0, newImage.Width, newImage.Height);
newImage.Save(fs, image.RawFormat);
newImage.Dispose();
}
}

C# ile CapsLock Kontrol Fonksiyonu

C# ile capslock tuşunu açıp kapatmak için kullanışlı bir fonksiyonu ve fohksiyon ile geliştirilmiş örnek bir uygulamayı paylaşıyorum.

// ReSharper disable InconsistentNaming
        [DllImport("user32.dll")]
        static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
        static void ToggleCapsLock(bool onOrOff)
        {
            if (IsKeyLocked(Keys.CapsLock) == onOrOff)return;
            keybd_event(0x14, 0x45, 0x1, (UIntPtr)0);
            keybd_event(0x14, 0x45, 0x1 | 0x2, (UIntPtr)0);

        }
        // ReSharper restore InconsistentNaming

Örnek Uygulamayı indirmek için burayı Tıklayınız… ExamCapsLock

70 Basit Algoritma Sorusu

Programlama konusunda kendini geliştirmeyi isteyenler ve programlama dersi için örnek soru arayanlar için emsal teşkil edecek 70 farklı basit algoritma sorusu.
Soru1) klavyeden bir sayı girilecek. bu sayı 10 farklı sayı ile çarpılacak

Soru2) 100 lük sistemde girilen not harf sistemine çevrilecek.
Soru3) sayısal olarak girilen ay bilgisi ocak şubat mart diye yazdırılacak
Soru4) haftanın günü kelime olarak girilecek sayı olarak çıkacak
Soru5) girilen işarete göre (-*/+) iki sayıya o işlemi uygulayacak
Soru6) klavyeden isim girilecek. girilen isim ne olursa olsun kaldı yazacak fakat kendi ismimiz yazıldığında geçti yazılacak

Soru7) 1′den 20′ye kadar olan sayıların karesini ekrana yazdıran akış diyagramını oluştunuz.
Soru8) Klavyeden girilen sayının 2′ye bölümünü bulan akış diyagramını oluşturunuz. (not:bölme / operatörünü kullanmadan yapılacak- Acaba nasıl?)

Soru9) Klavyeden girilen sayının 3 katını bulan akış diyagramını oluştunuz. (not:çarpma * operatörünü kullanmadan)

Soru10) Klavyeden girilen isim Ahmet olana kadar ekrana “yanlış isim” mesajı veren, Ahmet girilince “tebrikler,doğru isim” mesajı veren akış diyagramını oluşturunuz.

Soru11) Klavyeden girilen 5 adet sayının ortalamasını döngü mantığı ile bulup ekrana yazan akış diyagramını oluşturunuz.

Soru12) Klavyeden girilen 10 sayıdan pozitif ve negatif olanların toplamını ekrana yazan akış diyagramını oluşturunuz.

Soru13) 1 den 20 ‘ye kadar olan sayıları ekrana alt alta yazan akış diyagramını oluşturunuz.

Soru14) 1 ile 30 arasında bulunan çift sayıları ekrana yazan akış diyagramını yapınız.

Soru15) 1 ile 40 arasında bulunan 5 in katı olan sayıları ekrana yazan akış diyagramını yapınız.

Soru16) Klavyeden girilen 5 sayıdan kaç tanesinin pozitif kaç tanesinin negatif olduğunu bulan akış diyagramını yapınız.Not: Sayaç mantığı ve döngü kullanarak yapınız.)

Soru17) Klavyeden girilen bir sayının faktöryelini hesaplayan akış diyagramını yapınız.

Soru18) Klavyeden girilen 5 sayının çarpımını sayac mantığı ile yani döngü kullanarak hesaplayıp, ekrana yazan akış diyagramını yapınız.

Soru19) 1 den 50′ye kadar olan sayıları ekrana alt alta yazan akış diyagramını yapınız.

Soru20) 50 den 1′ye azalarak tek sayıları ekrana alt alta yazan akış diyagramını yapınız.

Soru21) 1 den 100′ye kadar olana çift sayıları alt alta yazan akış diyagramını yapınız.

Soru22) 0 dan başlayarak klavyeden girilen bir sayıya kadar olan sayıları ekrana alt alta yazan akış diyagramını yapınız.

Soru23) Klavyeden girilen bir sayıdan başlayıp, 1′e kadar olan sayıları alt alta ekrana yazan akış diyagramını yapınız.

Soru24) Ekrana 30 defa “Bilişim Teknolojileri” mesajını alt alta yazan akış diyagramını yapınız.

Soru25) Klavyeden girilen kullanıcının adını ekrana 20 kez yazan akış diyagramını yapınız.

Soru26) Klavyeden girilen iki sayının arasında bulunan tüm sayıları ekrana alt alta yazan akış diyagramını yapınız.

Soru27) Klavyeden girilen 10 sayının toplamını ekrana yazan akış diyagramını yapınız.

Soru28) Klavyeden girilen 10 sayının ortalamasını bulup, ekrana yazan akış diyagramını yapınız.

Soru29) Klavyeden girilen 10 sayıdan sadece negatif olanların çarpımını ekrana yazan akış diyagramını yapınız.

Soru30) Klavyeden girilen 10 sayıdan sadece pozitif olanların ortalamasını ekrana yazan akış diyagramını yapınız.

Soru31) Kullanıcı adı “admin”, şifresi “1234″ olan bir program için kullanıcıdan 3 kez giriş yapması istenecektir.(kullanıcı adı ve şifresi girilecek yani) Eğer her iki girişi de doğru yaparsa “Giriş izni var”, 3 kez yanlış giriş yapması sonucunda ise “Giriş izni yok” şeklinde mesaj veren akış diyagramını yapınız.

Soru32) Klavyeden girilen bir sayının faktöryelini ekrana yazan akış diyagramını yapınız.

Soru33) Klavyeden girilen 10 sayıdan negatif ve pozitif olan sayıların toplamını ekrana ayrı ayrı yazan

Soru34) Klavyeden girilen iki sayının karelerini ekrana yazan algoritma ve akış diyagramını hazırlayınız.

Soru35) Kullanıcın adı klavyeden girilerek “Hoşgeldin<kullancıcı adı>”, altına ise “Programlama öğreniyorum” şeklinde mesaj veren algoritma ve akış diyagramını hazırlayınız.

Soru36) Kullanıcının yıl olarak doğum tarihi girilerek, bugünkü yaşını hesaplayıp, ekrana yazan algoritma ve akış diyagramını hazırlayınız.

Soru37) Kullanıcının tuttuğu takım klavyeden okunarak, ekrana “En büyük <tutulan takım>” yazan algoritma ve akış diyagramını hazırlayınız.

Soru38) Dikdörtgenin kısa ve uzun kenar uzunluğu klavyeden girilerek, ekrana dikdörtgenin alanını ve çevresini yazan algoritma ve akış diyagramını hazırlayınız.

Soru39) Klavyeden girilen 3 sayının ortalamasını hesaplayıp, ekrana yazan algoritma ve akış diyagramını hazırlayınız.

Soru40) Klavyeden girilen bir sayı için pozitif mi negatif mi olduğunu ekrana mesaj olarak yazan algoritma ve akış diyagramını yapınız.

Soru41) Kullanıcın yaşı klavyeden girilerek reşit olup olmadığını mesaj olarak ekrana yazan algoritma ve akış diyagramını yapınız.

 

Soru42) Klavyeden kullanıcının sevdiği sanatçının adı ve kullanıcının yaşı girilerek, ekrana “En iyisi” şeklinde mesaj vererek, kullanıcının 2020 yılında kaç yaşında olduğunu bulup, ekrana yazan akış diyagramını yapınız.

Soru43) Klavyeden kullanıcının adı ve yaşı girilerek, ekrana “İyi ki doğdun” şeklinde mesaj vererek, kaç yıl sonra 30 yaşında olacağını ya da “30 yaşını geçmişsiniz” şeklinde mesaj olarak ekrana yazan akış diyagramını yapınız.

Soru44) Klavyeden girilen bir sayının mutlak değerini ekrana yazan flowchart programını yapınız.

Soru45) 1-1-2-3-5-8-13-21-34-55 serisi matematikte fibonacci sayıları dediğimiz sayılardır. Bu sayılar arasındaki ilişkiyi anlayarak, bu serinin ilk 10 terimini ekrana yazan Flowchart programını yapınız.

Soru46) Klavyeden girilen bir sayının tek ya da çift sayı olduğunu ekrana yazan flowchart programını yapınız.

Soru47) Klavyeden girilen bir sayının asal olup olmadıgını bulup, ekrana mesaj olarak yazan flowchart programını yapınız.

Soru48) Klavyeden 0 girilene kadar girilmiş olan sayıların toplamını ekrana yazan Flowchart programını yapınız.

Soru49) Klavyeden şifre olarak 123 girilene kadar kaç adet tahmin yapıldığını ekrana yazan flowchart programını yapınız.

Soru50) Klavyeden girilen 5 sayıdan sadece pozitif olanların ortalamasını hesaplayıp ekrana yazan Flowchart programını yapınız.

Soru51) Klavyeden girilen 5 adet sayıdan pozitif ve negatif olanların ortalamasını hesaplayıp, ekrana yazan Flowchart uygulamasını yapınız.

Aşağıdaki Örnek soruların cevaplarını bağlantıları izleyerek sitemizden bulabilirsiniz.

1. Klavyeden girilen 5 adet not bilgisinin ortalamasını alan programı yapınız.
2. Klavyeden girilen 10 adet notun en büyük ve en küçüğünü bulan programı yapınız.
3. Klavyeden girilen 5 adet sayının 10’dan büyük olanlarını sayan programı yapınız.
4. Klavyeden 0 sayısı girilene kadar sayılar okutunuz. Girilen sayıların 2 katını alarak ekrana sonucu yazdırınız.
5. 30 kişilik sınıfta, yaşı 13 ile 15 arasında olanların sayısını bulan programı yapınız.


6. 30 kişilik sınıfta yaşı 13, 14, 15 ve 16 olanların sayısını ayrı ayrı bulan programı yapınız.
7. Klavyeden girilen 5 adet sayının tek tek karelerini alan programı yapınız.
8. Klavyeden 3 not girilir. İlk notun %30, ikinci notun %30 ve son notun da %40’ını bulan programı yapınız. Sonuç olarak da 3 notun yüzdelerini toplayıp ekrana yazdırınız.
9. Klavyeden bir tam sayı okutunuz. Bu sayı ile klavyeden okunan diğer 10 sayıyı çarpma işlemi uygulayınız, sonuçları ekrana yazınız.
10. Klavyeden girilen 10 sayıdan 5’ten büyük olanların yarısını, 5’e eşit ve küçük olan sayıların 2 katını bulan programı yapınız.
11. Bir komisyoncu sattığı mallardan fiyatı 50 YTL kadar olanlardan %3, daha fazla olanlardan ise %2 komisyon almaktadır. Klavyeden girilen 5 malın komisyonlarını bularak, toplam komisyonu hesaplayınız.
12. Klavyeden 5 adet yarıçapı verilen çemberlerin alanını ve çevresini hesaplayan programı yapınız.
13. Klavyeden girilecek N sayısı kadar nottan en büyük ve en küçük olanı bulan programı yapınız.
14. İç içe döngüler ile saat: dakika: saniye olarak saat yapınız. Saat 0 ile 23, dakika 0 ile 59 ve saniye de 0 ile 59 arasında ilerleyecektir.
15. Klavyeden girilen 100’lük sistemdeki 5 notu; 0, 1, 2, 3, 4 ve 5 olacak şekilde ekrana yazan programı yapınız.
16. Sayısal olarak girilen bir ay bilgisini ekrana “Ocak, Şubat, Mart veya diğer aylardan biri…” şeklinde yazan programı yapınız.
17. Haftanın günü (Pazartesi, Salı, …) girilince, o günün haftanın kaçıncı günü olduğunu bulan programı yapınız.
18. Fiyat ve KDV oranı ayrı ayrı girilen 5 malın toplam fiyatını hesaplayınız.
19. Klavyeden dakika olarak girilen 5 şarkının toplam süresini saat olarak hesaplayan programı yapınız.
20. Girilen işlem türüne (* / – +) göre iki sayıyı işleme alıp sonucunu ekrana yazan programı yapınız.

 

Arama Terimleri:

  • algoritma soruları
  • basit algoritma örnekleri
  • algoritma btnleme soru ve cevaplar
  • algoritma ile ilgili sorular
  • algoritma soruları ve cevapları

Düzenli İfadeler(Regular Expression)

Bir string dizisinden belirli bir kalıba uyan yeni bir string dizisi oluşturmak için kullanılır. Örneğin;bir web sayfasındaki mail adreslerini elde etmek. Düzenli ifadelerde «System.Text.RegularExpresions» isim uzayı tanımlanır. Düzenli ifadeler (regular expressions) ile bu katara bir kalıp atanır ve bu kalıbın da program içindeki bu katarın bütün eşlenik ifadelerine geri dönmesi sağlanır. Böylece program içinde arama yapma veya yer değiştirme gibi olaylar kolayca yerine getirilebilir. Bunu yerine getirmek için bazi özel karakterler kullanılır. Bu özel karakterler ve anlamları şu şekilde sıralanabilir:

Karakter Anlamı
. Herhangi bir tek karakteri temsil eder.(/n hariç) Örn; “d.neme” ifadesinden “deneme”, “daneme”, “doneme” gibi alt stringler elde edilebilir.
[ ] Bir diziyi yada aralığı temsil eder.  Örn;de[ea]me deseni ile deneme ve dename stringleri elde edilebilir. Ayrıca de[0-9]me deseniyle sayısal aralık belirtirlir.
? Kendinden önceki karakterin string içerisinde olup olmamasını sağlar. Örn; «Mühe?» ifadesi «Müh» yada «Mühe» döndürür.
\ -Kendinden sonraki karakteri özel karaktere dönüştürür veya tam tersini yapar. Örn; “n” karakter “\n” yeni satır.-Kendinden sonraki karakterin stringe dahil edilmesini sağlar.«MÜ\H» ifadesi «MÜH» döndürür.
* Kendinden önceki karakterin yada stringin hiç olmaması yada istediği sayıda olmasını sağlar. Örn; “MUH*” deseni “MUHHH” veya “MU” döndürür.
{} Kendinden önce gelen karakterin belirtilen sayıda tekrar edilmesini sağlar.Örn;”MU{2}H” deseni “MUUH” döndürür.
^ Satır başını ifade eder. Örn;”^MUH” , satır “MUH” karakterleri ile başlamak zorunda.
$ Satır sonunu ifade eder. Örn;”MUH$”  satır “MUH” karakterleriyle bitmek zorunda
+ Kendinden önceki karakterin bir yada daha fazla olmasını zorunlu kılar. Örn;”MUH+” deseni  “MUHH”  ile eşleşir ama “MU” ile eşleşmez.
() Tek karaktermiş gibi işlenir.
x|y X veya y den birisiyle eşleşir. Örn; “M|UH” deseni “M” veya “UH” döndürür. “(M|U)H” desenine “MH” veya “UH” uyar.
[A-Z] Herhangi bir büyük harf.
[^A-Z] Herhangi bir büyük harf harici karakter.
[a-z] Herhangi bir küçük harf.
[0-9] Herhangi bir rakam.
\b İfadelenin önündeki ve arkasındaki karakterleri sınır kabul eder.
\B karakteri sınırlandırma olmayan durumu belirtir
\d “[0-9]” desenine eşittir.
\D “[^0-9]” desenine eşittir.
\n Yeni satır başlangıcı.
\r Satır başı karakteri.
\s Boşluk. “[ \f\n\r\t\v]” deseniyle eşleşir.
\S “[^ \f\n\r\t\v]”
\t Tab karakter.
\v Dik tab karakter.
\w Herhangi bir kelime ile eşleşir. “[A-Za-z0-9_]” desenine eşittir.
\W Herhangi bir kelime ile eşleşmez. “[^A-Za-z0-9_]” desenine eşittir.

Hazır desen örnekleri:

Desen Adı Desen
IP adres: \b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
IP adres Grup: \b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
URL: ((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)
Web Domain : [a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)?
HTML Tag: <.[^>]*>
Date : (([0-9])|([0-2][0-9])|([3][0-1]))\/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\/\d{4}
Time: ([0-1][0-9]|[2][0-3]):([0-5][0-9])
Email : ([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)
Guid: ^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$
ISBN Number: ISBN\x20(?=.{13}$)\d{1,5}([- ])\d{1,7}\1\d{1,6}\1(\d|X)$
Türk Telefon \d{1}\(\d{3}\)([-\.\s])\d{3}\1\d{2}\1\d{2}

 

Proxy Server Vekil Sunucu Oluşturma

Proxy Server Vekil Sunucu Oluşturma

Proxy Server Vekil Sunucu Oluşturma

Vekil sunucu bilinen İngilizce adıyla proxy server internette iz bırakmadan. Anoymous (belirsiz ) olarak dolaşmak için kullanılan sistemlerdir. Herhangi bir web sayfasına dierk olarak değilde proxy server ile erişirseniz web sayfası sizin değil proxy sunucunun bilgilerine erişecek böylelikle sizle ilgili bilgi toplayamayacaktır. Aynı şekilde genellikle mahkemelerce erişimi engellenmiş web sitelerinie erişmek içinde proxy sunucular kullanılır.

Proxy sunucular; Proxy sunucu,internete erişim sırasında ara makine olarak kullanılan makinelerdir. İnternete erişim sırasında vekil aracı görevi görürler. İnternete erişim sırasında direkt bağlantı yerine bu tür bağlantılar üzerinden bağlanılır ve ana bağlantıyı isteyen makine geçici olarak kimliğini gizleyebilir. Çünkü internete bu makinalar üzerinden bağlanıldığından karşı tarafın,bağlanan makineyi değil üzerindeki vekil sunucuyu proxy serverı görecektir.

Bu teknoloji, birçok avantaj sağlar:

  • Fazladan hız: vekil sunucu, çok ziyaret edilen sayfaları önbelleğine alabilir. Bu durumda, o sayfa ziyaret edilmek istendiğinde dünyanın öbür ucundaki bir sunucuya bağlanmak yerine önbellekteki bilgi okunur.
  • Fazladan kontrol: vekil sunucu, istenen sayfalara erişim verip istenmeyenlere erişim vermeyebilir. Kimin hangi sayfaya girdiğini bellekte tutabilir. Gerekiyorsa, içeriği değiştirerek (örneğin küfürleri silerek) verebilir.
  • Fazladan güvenlik: vekil sunucu, virüslü dosyaları otomatik olarak temizleyebilir. Ayrıca, ağda hiç kimsenin internete doğrudan erişimi olmadığı için bir virüsü veya zararlı bir programı yayma ihtimalini de azaltır.

Mozilla Firefox 2.0 altında Vekil sunucu tanımlanması

  • Fazladan gizlilik: Özellikle Çinliler, Google ve Vikipedi gibi Çin hükümetince yasaklanan sitelere bağlanmak için bu yönteme başvururlar.
  • Asgari erişim: Kullanıcılar, özellikle hükümet tarafından yasaklanan (teknik tabiriyle “erişimi engellenen”) internet sitelerine bağlanmak için bu yönteme başvururlar.

Vekil sunucu oluşturmak çok basittir. Kendi ev bilgisayarınızda veya varsa hostunuza kolayca vekil sunucu oluşturabilirsiniz. Proxy sunucu oluşturmak için PHProxy  Projesini kullanacağız. Son güncellemesi oldukça eski bir tarihte olduğu halde hala çalışan bu proxy projesi ile PHP destekli sunucuya sahip herkes tarafından kullanılabilir.
Yapmanız gereken sunucunuz da bir klasör oluşturup indirdiğiniz dosyaları içine atmak. Artık sizin de kendinize özel çalışan bir proxyniz oldu.

http://sourceforge.net/projects/poxy/ adresinden proxy sunucu projesini indirebilirsiniz.

Çalışan proxy sunucuyu test etmek isterseniz http://jn7.net/proxyserver/ adresini kullanarak benim oluşturduğum vekil sunucuyu görebilirsiniz.

Visual C# – Rasgele Sayı Üretme

Visual C# ile Rasgele Sayı Üretme

Rasgele numaralar; bir oyun geliştimende, bir dizi içerikten şanslı olanı seçmende, ASP.NET sitende rasgele resimler göstermende ve bunun gibi birçok şekilde örnekleyebileceğimiz onlarca yerde işimize yarayacak temel fonksiyonlardan biridir. Güncel modern programlama dillerinde kolayca rasgele sayılar üretebiliriz. Nacak şöyle de bir karanlık bir gerçek varki: bilgisayarların ürettiği rasgele sayılar aslında gerçekten rasgele değildir. Onlar yalancı-sözde rasgele sayılardır. bu sayılar karmaşık bir algoritma sonucu üretilir. Ne yazikki uzun yıllardır bilim rasgele sayı üretmenin yolunu bulamadı. Halen rasgele sayılar şüpheli. Bazı bilgisayar uzmanları günümüz popüler programlama dilleriyle oluşturulmuş rasgele numaraları tahmin edebilir programlar geliştirebiliyorlar. O kompleks algoritmalar çözülebiliyor.

Lafı fazla uzatmandan tartışmalardan uzak C# ile nasıl rasgele sayılar üretebileceğimizi yazalım :

Random randNum = new Random();
randNum.Next();

Hepsi bu. Bir Random nesnesi üretmek (System.Random sınıfında) ve Next() methodunu çağırmak, bu bize negatif olmayan (pozitif) bir integer türünde eğer döndürecektir.

Rasgele bir sayı ürettiğinizde elde ettiğiniz sayı çok büyük değerde olacaktır. >Bunu belli bir aralık içersine sığdırabilirsiniz. Örneğin 108 insan arasında rasgele birini seçme işlemi için aşağıdaki kodu üretmeniz lazım. Bu kad sayesinde 108 sayısından büyük bir sayı üretilmeyecektir.

Random randNum = new Random();
randNum.Next(108); //  En büyük 108

Daha önce de söylediğimiz gibi pozitif olma koşulu sayesinde en küçük “0” en büyük “108” değeri döner. Ancak “0” rakamını istemiyorsak yazacağımız kod aşağıdaki gibidir. aşğaıdaki kod ile “1” ile “108” arasında bir sayı üretilecektir.

Random randNum = new Random();
randNum.Next(1, 108); // En büyük 108 en küçük 1

Bazı özel durumlar:

Random randNum = new Random(1986);
randNum.Next(); // Bu her zaman 564610494 sayısını döndürür.

Yine aynı şekilde :

Random randNum = new Random(1986);
randNum.Next(); // Bu her zaman 564610494 sayısını döndürür.
randNum.Next(); // Bu her zaman 1174029081 sayısını döndürür.
randNum.Next(); // Bu her zaman 2057658224 sayısını döndürür.

 

Eğer double tipinde bir sayı üretmek istiyorsak NextDouble() methodu kullanılır. Bu kod bize 0 ile 1 arasında bir sayı döndürür:

Random randNum = new Random();
randNum.NextDouble();
randNum.NextDouble();
randNum.NextDouble();

Örnek olarak dönecek rakamlar 0.12820489450164194, 0.81203657295197121 ve 0.0582018419231087554.

Bir arraya atarak kulanımı ile ilgili olarak ta aşağıdaki örneği verebiliriz.

byte[] randBytes = new byte[108];
Random randNum = new Random();
randNum.NextBytes(randBytes);

Bu kodun sonucu buna benzer olacaktır: 196 231 77 225 52 144 146 72 3 90 18 233 161 205 147 196 35 152 30 220 41 114 156 25 184 185 30 64 140 138 215 62 178 90 158 94 0 47 101 234 151 44 71 189 146 113 111 90 3 93 59 104 91 143 81 82 75 51 40 123 113 81 188 121 130 212 55 71 47 52 195 243 50 52 68 252 42 222 135 70 74 196 61 46 79 111 227 34 8 75 19 205 6 234 120 70 112 206 58 190 58 39 42 206 153 71 53 38. Tabi ki sizin rakamlar farklı olmalıdır.

 

Back to Top