C++ Programlamaya Giriş ve Algoritmalar

Gauloran

Kıdemli Moderatör
7 Tem 2013
8,123
606
local
Merhaba değerli Turkhackteam üyeleri. Bu konuda Algoritmalar ve Programlamaya C++ ile giriş yapacağız.

xOMmo3.png


İçerik:

Algoritmalar
Problemin Okunması
Akış Diyagramları
Algoritma Örnekleri
Algoritmada İşlem Önceliği
Mantıksal İşlemler
Değişken Tipleri
Döngüler
Döngülerden Çıkılması
İç İçe Döngüler
C++ Programlamaya Rad Studio ile Giriş



xOMmo3.png


Algoritmalar

Öncelikle programlamaya giriş yapmak isteyen fakat yanlış yönlendirilen arkadaşlar için algoritmalardan bahsetmemek doğru olmaz. Algoritmaya kısaca herhangi bir olayın işleyişi diyebiliriz. Yani olayın çalışmasının başlangıcından bitişine kadar tüm adımlarının eksiksiz bir şekilde yazılması demek o olayın algoritması demektir. Açıkçası dünya üzerinde algoritmanın rol oynamadığı herhangi bir iş yok demek yanlış olmaz. Çünkü herhangi bir iş yapmaya kalktığımızda bu işteki bütün adımları doğru yapmazsak ortaya çıkan şey pek sağlıklı olmaz. Örneğin nefes almak adım adım yapılan bir iş. Demek istediğim algoritmanın her şeyde mevcut olması. Algoritmanın adının kaynağı Harezmi’nin (arapça söyleyişiyle el-harezmi) Fransızca ifade edilişinin İngilizceye geçmesi sonucunda “algorithm” ve Türkçemizde ise “Algoritma” dan gelmektedir.

7m6f49.jpg


Örneğin 14+37’yi toplamaya kalktığımızda ilk yapacağımız işlem 4 ile 7’yi toplamak fakat toplamanın neden sağdan başladığını bile düşünmüyoruz. Veyahut matematiğin önemli buluşlarından birisi ve bir kabul olan 0’ı düşünmüyoruz. Bir başka pek düşünmediğimiz şeylere örnek verecek olursak, matematikte evrensel olarak sağdan sola toplama yapılmasının nedenini düşünmüyoruz. Çoğu kodlama yapan insan deneme yanılma yoluyla yazmakta ve bu şekilde para kazanmakta. Fakat deneme yanılma yolu sizce sağlıklı mı?

Bir algoritmayı kurarken en ufak ayrıntıyı bile bilmemiz gerektiğinin farkında olmalıyız. Bir bilgisayar programcısının en önemli yardımcısı kağıt ve kalemdir. Evet, kağıt ve kalem. Aklımızdan yaptığımız ve mantığını kurdum kodu yazmaya geçelim dediğimiz anda yanlışı yaptık bile. İlk defa karşımıza çıkan bir problemi kağıt üstünde çözüp kağıt üstünde yüzde yüz çalıştığından emin olmazsak yazamayız. Kodlama yapıldığı sırada mantık geliştirilmez. Kağıt üstünde kurulduktan sonra kodlamaya geçilir. Tabii bunlardan bahsederken kısa kodlamalardan bahsetmiyorum. Uzun aşamalı kodlamalarda bu şekilde yapmalıyız. Kağıt kalemi vurguladım fakat kağıt ve kalemden kasıt bir Word belgesi veya not defteri de olabilir.

D1z03w.jpg


Algoritmalardan bahsediyorsak akış şemalarından da bahsetmemiz gerekir. Akış şeması dediğimiz şey algoritmanın şekillerle gösterilen halidir. Diyelim ki bir dikdörtgen görüyoruz ve o dikdörtgen ekrana çıktı anlamına geliyor. Başka bir şeklinse başka bir anlamı var. Bu akış şemalarından daha önemlisi bizim için yapılacak olan işin en baştan doğru yazılmasıdır. Peki bu işlem nasıl yapılıyor? En önemli şey başlamak. Bu arada başlamak bir işi bitirmenin yarısı değildir. Başlamak başlamaktır. Bir algoritmayı tasarlamadan önce neler yapmalıyız?

xOMmo3.png


Problemin Okunması

Bizden neyin istendiğini anlamamız gerekli. Bununla da kalmayıp ne kadar isteniyor, nasıl bir üretim bekleniyor yani o algoritmanın sonucunda ne çıkması bekleniyor tüm bunların iyice analiz edilmesi gerekli. Hangi ekipmanlara, nelere ihtiyacım var? Bizim ülkemizde programcılıkta algoritma dendiği zaman en ünlü olan standart algoritma çay demleme algoritmasıdır. Bir çay nasıl demlenir şeklinde algoritmalar mevcut. Algoritma geliştirirken belirtilen isteğin özel mi yoksa genel mi olduğunu belirlememiz gerekir.

Örneğin çay demleme algoritmasından bahsettik çay demlemek genel bir algoritma fakat yarım saatte çay demlemek özel bir algoritmadır diyebiliriz. Özel algoritmalar her zaman doğru sonucu vermeyebilir. Yazdığımız bütün programları ve bütün kodları, algoritmaları bu mantıkla ve en kısa şekilde yazmaya çalışacağız. Sağlıklı bir program yazılırken en kısa haliyle fakat eksiksiz bir şekilde olmalı.

WM2Mvm.png


xOMmo3.png


Akış Diyagramları

Akış diyagramlarından bahsetmeden önce bir algoritmanın test edilmesi için sınır değerler, orta değerler ve özel değerler kullanılmalı. Örneğin iki sayının karelerinin toplamı algoritmasını test etmek. Misal 0,1 gibi değerler önemli, özellikle de 0 çok önemli çünkü matematikte çarpmada yutan elemanken toplamada etkisiz eleman kendisi. Bunları bilerek işlem yapmamız daha sağlıklı olur. Akış diyagramları diyorduk akış diyagramları algoritmaların özel şekillerle çizilmesine denir demiştik. Burada bilmemiz gereken bir başka önemli nokta akış diyagramlarını ayrıntıya inmeden oluşturmaya çalışmak.

K3uS3a.png


Akış diyagramlarımızı oluşturmamız için bu şekilleri iyice öğrenmemiz gerekiyor. Algoritmanın tanımını çoktan yapmıştık fakat bir algoritmanın hangi kriterleri sağlayacağını belirtmedik. Bir algoritma girdi, çıktı, açıklık, sonluluk ve etkinlik kriterlerini sağlamalıdır.

Girdi: Sıfır veya daha fazla değer verilmeli.
Çıktı: En azından bir tane değer üretmeli.
Sonluluk: Her olasılık için algoritma sonlu adımda bitmeli.
Etkinlik: Her komut basit bir şekilde yürütülebilmeli.

Kağıt ve kalemden bahsetmiştim yukarılarda. Şimdi akış diyagramlarındaki o şekilleri üstte vermiştim fakat ısınma açısından ve bir klasik olan iki sayının toplamını bulan algoritmayı birlikte yazalım. Algoritma yazarken adım sayısını belirtmeniz gerekli çünkü bir süre sonra falanca adıma geri dönmek isteyebilirsiniz ve bunu yapmanızın tek nedeni bu değil. Ben 0,1,2,3… şeklinde yapacağım. Başlamadan önce değişkenlerden bahsetmenin tam zamanı. Programlama ve algoritmada bilgisayarda tutulacak türlü türlü bilgileri, bilgisayarın o bilgiyi kavraması ve işlem yapmasını sağlaması, özetle saklamasına yardımcı olan kahramanlarımıza değişken diyoruz. Daha sonra değişken tiplerinden bahsederim şimdilik bu kadarı yeterli.

Kod:
[COLOR="Olive"]0 Başla
1 Birinci, ikinci sayi, toplam’i tanimla
2 Birinci sayiyi oku
3 İkinci sayiyi oku
4 Sayilari topla ve toplam degiskenine at
5 Toplami goruntule
6 Dur[/COLOR]

İki sayının toplamını bulup gösteren algoritmayı yazdık. Tabi bu algoritmayı örnek olması açısından verdik yoksa uzun uzadıya yazmayın. Yani üstte yaptığımız örnek aslında şöyle olmalı:

Kod:
[COLOR="olive"]0 Başla
1 t, s1, s2 degiskenlerini tanimla
2 s1=?
3 s2=?
4 t=s1+s2
5 t[/COLOR]

Farklı bir örnek daha olması açısından kullanıcının girdiği iki sayının karelerinin toplamını görüntüleyen algoritmayı yazalım.

Kod:
[COLOR="olive"]0 Başla
1 sayac=1, sayi=1 degiskenlerini tanimla
2 sayi değerini (al)
3 sayi=sayi*sayi
4 sayac=sayac+1
5 sayac<3 ise sayi=2 olsun ve 2.adima git[/COLOR]

xOMmo3.png


Algoritmada İşlem Önceliği

Matematiksel işlemler dediğimiz toplama, çıkarma, çarpma, bölme işlemleri ve üs alma işlemlerinden biraz bahsedeyim. Öncelikle üs alma işlemi çarpmanın daha geliştirilmiş bir hali olduğundan yine çarpma olarak kabul ediyoruz ve üs almayla çarpmayı bir tutuyoruz. Bu durum logaritmik işlemlerde sıkıntılı oluyor tabi. Yani atıyorum 3.2’nin 7.6’ıncı kuvvetini bahsettiğim çarpmayla almamız mümkün olmadığından logaritmik işlemlerde hallediyoruz bu gibi durumları. İşlemlerde öncelik sırası matematikte işlem önceliği nasıl yapılıyorsa programlama ve algoritmada da aynı sıralama geçerli. Yani parantezler bizim için önceliklidir. Daha sonra üslü işlemler ve ardından çarpma/bölme, en sonunda da toplama ve çıkarma işlemlerini yapıyoruz.

xOMmo3.png


Mantıksal İşlemler

Çeşitli karşılaştırma işlemlerini mantıksal işlemlerle yapmamız mümkün. Nedir bunlar “ve”, “veya”, “değil” şeklinde İngilizcesi sırasıyla “and”, “or” ve “not”. Bunlara lisede mantık konusunu gören herhangi bir öğrenci zaten aşinadır. Mantıksal işlemine göre 1 ve 0’lar rol oynuyor. İşte lisede gördüğümüz doğruluk tablolarından hiçbir farkı yok.

xOMmo3.png


Değişken Tipleri

Bazı değişken tiplerinin bir programlama dilinde olup ötekinde olmadığını görmüşsünüzdür. Bunların detayına girmeye gerek yok sonuçta açıp baktığınızda öğrenebileceğiniz bir şey. Burada bilmemiz gereken hap bilgi bir değişkenin bellekte ne kadar alan kapladığını bilmemiz gerekli. Tamam buna da açıp bakabilirsiniz ama size anlatmak istediğim şey değişkenin alabileceği değer aralığına göre işlem yapmak zorunda olduğumuz.

mXPley.gif


xOMmo3.png


Döngüler

Assembly zamanı ilk başta for while gibi döngüler geliştirilmediğinden tek tek yazılırdı. Daha sonra kullanıcıların daha kolay kod yazmasını sağlayan tekrar eden işlemleri bloklar halinde bir arada tutan döngüler ifade edilmeye başlandı. Yani tekrar eden adımları birden fazla yazmayarak işlevini görmesi sağlandı. Her döngünün avantajları olmakla birlikte dezavantajları da var. Örneğin for döngüsünün avantajı bütün işlemleri tek satırda veriyorsun ve değiştirmen çok fazla mümkün olmuyor.

C’ye özel olarak içerisinde işlem yaptırıp geliştirebiliyorsunuz ama atıyorum Pascal ya da Delphi’de o şekilde kullanamazsınız. Hazır for döngüsünden bahsetmişken for döngüsünün alım sayısının baştan belli olduğu döngülerde kullanıldığını söylemeden geçmeyeyim. Dışarıdan değer alıp o değere bağlı olarak işlemleri devam ettirip ettirmemeye karar verirsek while döngüsünü kullanmamız gerekir. Yok eğer en az bir kere yapıp ondan sonra girilen değere göre işlem yapacaksak do while döngüsünü kullanmamız gerekir.

MGEsq3.png


xOMmo3.png


Döngülerden Çıkılması

Örneğin for döngüsünde tüm şartların yerine getirilip adedin tamamlanması veya döngünün kırılması gerekmesi lazım. O kırılma olayını da biz belirliyoruz. While döngüsünde ise şartı baştan kontrol ediyoruz fakat do while döngüsünde en az bir kere yapıldığının üzerine tekrar basmak istiyorum.

xOMmo3.png


İç İçe Döngüler

Bir döngü içerisinde başka bir döngü kullanabiliriz. İç içe döngü bir döngünün içerisinde yapmamız gereken bir adımı başka bir şarta bağlayıp başka bir ifadeye bağlayıp o adımların tekrar edilmesi sonucunda tekrar devam edecek başka bir yapıya dönüştürmek istiyorsak o zaman birden fazla iç içe döngü kullanılabilir. Stack overflow dediğimiz arka arkaya çağrılan işlemlerden dolayı 10 milyon hatta 100 milyon tane döngüyü arka arkaya kullanabiliyoruz ama iç içe kullanamıyoruz. Demek istediğim bu konuda hassas sınırlar var. :)


Şimdi sizlere incelemeniz için yukarılarda yaptığım gibi yine birkaç algoritma vereyim. Bunların doğruluğunu, yanlışlığını ve hatta ne işe yaradığını bir not defteri açarak inceleyin.

xOMmo3.png


Kod:
[COLOR="Olive"]1 Başla
2 girilen, enb, enk, sayac=1 (tanımla)
2.2 "kaç adet sayı gireceksiniz (pozitif tam sayı giriniz)?"
2.3 n değerini al (dışarıdan)
3 "bir sayi giriniz" yaz
4 girilen degerini al (dışarıdan)
5 enb=girilen, enk=girilen
6 "bir sayi giriniz:" yaz
7 girilen degerini al (dışarıdan)
8 sayac=sayac+1; 
9 EĞER enb<girilen ise enb=girilen
9.5 EĞER enk>girilen ise enk=girilen
10 EĞER sayac<n ise 6.adıma git
11 ekrana enb-enk değerini yaz
12 dur[/COLOR]

Kod:
[COLOR="olive"]1 başla
2 nt=0, pt=0, gr, sayac=1 (degiskenleri tanimla)
3 "lutfen rastgele bir sayi giriniz: " yaz
4 gr degeri (al)
5 Eğer gr > 0 ise pt = pt + gr
6 Eğer gr < 0 ise nt = nt + gr
7 Eğer sayac >= 50 ise 9.adıma git
7.5 sayac=sayac+1
8 3.adıma git
9 nt ve pt değerlerini yaz
10 dur[/COLOR]

Kod:
[COLOR="olive"]1 başla
2 nt=0, pt=0, gr, sayac=0
3 lutfen rastgele bir sayi giriniz yaz
4 gr degerini al
5 eger gr>0 ise pt=pt+gr
6 eger gr<0 ise nt=nt+gr
7 sayac=sayac+1
8 eger sayac<50 ise 3.adıma git
9 nt ve pt degerlerini yaz
10 dur[/COLOR]

Kod:
[COLOR="olive"]1 başla
2 nt=0, pt=0, gr, na=0, pa=0 degiskenlerini tanimla
3 lutfen rastgele bir sayi giriniz yaz
4 gr degerini al
4.5 eğer gr=0 ise 8.adıma git
5 eger gr>0 ise pt=pt+gr, pa=pa+1
6 eger gr<0 ise nt=nt+gr, na=na+1
7 3.adıma git
8 nt ve pt degerlerini yaz ve pt pa değerlerini yaz
9 dur[/COLOR]

Kod:
[COLOR="olive"]1 başla
2 toplam=0, gr
3 lutfen rastgele bir sayi giriniz
4 gr degerini (al)
5 eger gr=0 ise 8.adıma git
6 eger gr>0 ve (gr/2)<>0 ise toplam=toplam+gr
7 3.adıma git
8 toplam degerini yazdır
9 dur[/COLOR]

xOMmo3.png


Programlamaya Giriş

Algoritmalardan birazcık bahsettikten sonra bu başlığın gelmesinin en doğrusu olduğunu düşündüm. Ben C++ dili bazlı yazacağımdan dolayı derleyici olarak Rad Studio’yu tercih ediyorum. Fakat Codeblocks derleyicisini de kullanabilirsiniz. Derleyici dediğim şey bir nevi tercümandır. Yani yüksek seviye bir programlama dilinde yazılmış kaynak kodun bilgisayarın anlayacağı yani makine diline tercümesini yapan bir programdır. Ben bu derleyici seçimi konusunda Rad Studio’yu tercih ettiğimi belirttim. Community versiyonlarından indirebiliyorsunuz. Klasik işlemler maile gelen şifreyi girdikten sonra derleyicinin büyük bir kısmını kullanabiliyoruz.

mMXr2C.png


xOMmo3.png


Yükledikten sonra açıyoruz ve C++ builder kısmından Console Application kısmını seçiyoruz. New Console Application kısmında C++ seçiyoruz ve target framework’e none olarak bırakıyoruz herhangi bir platform üzerinde kod yazmayacağız çünkü. Multi threaded ifadesinde check işareti varsa kaldırıyoruz. Şimdi C++ Builder Community Edition’un 10.3.3 veya üstü sürümünü indirdiyseniz ufak bir ayar yapmamız gerekecek yok eğer daha eski sürüm var bende diyorsanız zaten eski sürümlerde modern C kodlayıcısı aktif hale geldiğinden biz bu kütüphanelerin daha az tanımlandığı değil de normal daha klasik derleyiciyle çalışacağız. Tools kısmından Options’a gelip Language kısmından C++ Options’u seçerek Project Properties’e gelip C++ Compiler bölümünden “use classic borland compiler” seçeneğini true yapıyoruz.

xOMmo3.png


G4nDIi.png


xOMmo3.png


bSlxAH.png


xOMmo3.png


UbLPNl.png


xOMmo3.png


X3IZLk.png


xOMmo3.png


XArpFb.png


xOMmo3.png


9quE31.png


xOMmo3.png


Artık projemizde klasik C++ kodlarını kullanmaya başlayabiliriz. iostream.h ve conio.h kütüphanelerini kullanacağız kütüphane dediğimiz şey geliştiricilerin kullandıkları bir tür veriler takımı diyebiliriz. Yani derleyicilerde çalıştırılabilirler ve programların geliştirilmesine yardımcı olurlar. Kütüphane kavramından çıkarılması gereken şey şu sizden önce de birileri bu programlama dilini kullandı :) ve türlü türlü fonksiyonları bir araya topladılar bu dosyalara da kütüphane diyebiliriz. Siz kod yazarken bu kütüphaneleri kullanabilirsiniz. Yani kütüphanelerin içerisindeki fonksiyonları kullanabileceğiniz anlamına geliyor bu.

xOMmo3.png


eLGyLx.png


Kütüphaneleri eklediğimize göre şimdi algoritmalarla ilgili birkaç fikrimiz olduğundan bir şeyler yapmamız mümkün. Örneğin iki tane değişken tanımlayıp sayılar verip toplayalım.

WOqEY1.png


Değişkenlerimizi tanımladık bu değişkenlerin yani dışarıdan aldığımız sayıların toplamını başka bir programda veya başka bir değer için referans oluşturacak mı diye algoritmamızı kontrol etmemiz gerekiyor. Programlamada önemli olan bir diğer nokta da programımızı kullanacak olan kişinin hiçbir şekilde programcılık bilmediğini varsayarak kod yazmamız gerekiyor. Yani kullanıcıyı doğru bilgilendirmek çok önemli. Bu yüzden kullanıcıyı bilgilendirmek adına cout’u kullanabiliriz.

9bgpZv.png


Önce cout ile ekrana “lütfen birinci tam sayiyi giriniz:” yazdırdık ve daha sonra cin’ ile dışarıdan herhangi bir değişkene değer aktarmayı yaptık. Yani kullanıcının bizim tanımladığımız sayi1 değişkenine değer atamasını cin’ ile yaptırabiliyoruz. Son olarak yapmamız gereken şey bu iki sayıyı toplamak istiyorduk. Bunun için bir alt satıra sayi1+sayi2; yazmamız yeterli fakat bu kod yalnızca bu işlemi yaptırır yani kullanıcı bunu ekranda göremez. Görmesi için cout’ kullanabiliriz.

apmCFk.png


Bazı programlama dillerinde değişkenleri doğrudan tanımlamaya ihtiyaç yoktur. Yani değişkenleri ihtiyacımız olduğu anda tanımlamamıza izin verir. C ve türevlerinde de böyledir ancak algoritması daha önceden hazırlanıp kullanılmasından dolayı değişkenlerin önceden tanımlanıp belirlenmesi programlama açısından daha sağlıklıdır. Bütün programlama dilleri matematiksel olarak çalışıyor fakat C’de bu biraz daha bariz belli oluyor. Çünkü C’de neyi kullanırsak kullanalım her şey matematikte gördüğümüz fonksiyon kavramı gibi çalışır. Bizim bu üstte kullandığımız komutları kullanmak için kütüphaneleri kullanıyoruz çünkü bunlar bize hazır olarak sunulmuş. Eğer yapacağınız programda hazır komutları kullanma imkanınız varsa o yapıları ve o kütüphaneleri programınıza eklemek zorundasınız. iostream.h C++ genel komutlarının olduğu kütüphanedir.

uBsKxl.png


Conio.h ise en sonda kullandığım getch’i içeriyor dolayısıyla bu kütüphaneyi eklemek zorundayız ve eğer bu kütüphaneleri kodları yazdıktan sonra ekleseydik hata alırdık. Undefined symbol ‘cout’ yani cout nedir ben tanımadım bunu diyecekti bize. Bu arada neyin önce yapılmasına hafif değinmişken değişkenleri de kullanmadan önce tanımlamaya dikkat etmeliyiz. Diyelim ki işlem yaptırmak istediğimiz şey herhangi bir C kütüphanesinde bulunmuyor o zaman ne yapacağız? Böyle bir şeyin olması çok nadir bir durumdur yüksek ihtimalle işletim sistemi falan yazmaya kalktınız :D O zaman oturup Assembly kodlarıyla yapmamız gereken işlemi bizim oluşturmamız gerekiyor.

Çok büyük bir yazılım firmasında bir sürücü falan yazmazsanız böyle bir şeyle karşılaşmazsınız. Çünkü C ve C++ geliştiricileri birçok kütüphaneyi oluşturmuşlar zaten kullandığımız dil ile ilgili uyumlu kütüphanelerin sayısı çok fazla. Diyelim ki bir komutla ilgili bilgi almak istiyorsunuz direkt derleyici üzerinden help kısmından biraz İngilizceniz varsa bu yardım dosyasının içerisine ilgili komutu yazdığımızda o komutla ilgili birçok örnek ve açıklayıcı yardım veriliyor zaten.

xOMmo3.png


Programlamaya C++ ile giriş yapmak isteyen arkadaşlar için temelden başlayan bu serinin devamını vakit buldukça getirmek istiyorum. Kendinize iyi bakın.
 
Son düzenleme:

Provido

Katılımcı Üye
21 Eki 2015
477
1
Gayet detaylı ve basit olmuş. Yeni başlayan birisinin öğrenmesi çok kolay olacaktır.
 

gdfr520

Yeni üye
12 Ara 2020
11
0
Çok teşekür ederim ben C++ a yeni başaldım bu yazdığınız yazı sayesinde bir iki şey kaptığıma inanıyorum teşekürler
 

Gauloran

Kıdemli Moderatör
7 Tem 2013
8,123
606
local
Uzun, açıklayıcı, kapsamlı ve güzel bir tutorial olmuş. Yine de ben C# tercih ederim

sonuçta c ve türevi çok ayrımcılık yapmamak lazım :trl

Çok yararlı bir konu olmuş elinize emeğinize sağlık teşekkürler.

Elinize sağlık, güzel konu olmuş.

Emeğinize sağlık

Eline emeğine sağlık

yorumlarınız için sağolun

Gayet detaylı ve basit olmuş. Yeni başlayan birisinin öğrenmesi çok kolay olacaktır.

tabii giriş hatta 0 da diyebiliriz :D

Elinize sağlık hocam büyük emek var, bazı resimler gözükmüyor.

düzelttim sanırım tekrar kontrol edebilir misin Vepers

Çok teşekür ederim ben C++ a yeni başaldım bu yazdığınız yazı sayesinde bir iki şey kaptığıma inanıyorum teşekürler

rica ederim elimden geldiğince programcılık felsefesine girmeye çalıştım

başarılı bir konu, eline emeğine sağlık. bilgin olsun, resimlerde sorun oluşmuş.

tekrar kontrol edebilir misiniz sanırım düzelttim
 

RootBeta

Katılımcı Üye
7 Ara 2020
536
1
Russia
Elinize sağlık gayet kolay ve anlaşılır bir konu olmuş . Yeni başlayanlar için altın niteliğinde
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.