-
1.
+26burada arkadaslar degigib yontemlerle programciligi anlatti, cok guzel de anlattilar. ben de bu islere uzun yillar once girmis ve gotunun killari kadayif olmus bir abiniz olarak kendimce programciligi anlatayim dedim.
bu arada ben burada belli bir dili ve teknolojiyi anlatmayacagim, onu belirteyim. ama hangi dil, platform, teknoloji kullanirsaniz kullanin, temel prensip aynidir.
programcilik nedir?
programcilik insan beyni ile bilgisayarin islemcisi arasinda bir iletisim kurarak, ona istedigimizi yaptirmaktir. bunu basarmak icin bilgisayarin beynine, onun anlayacagi sekilde konusmayi ogrenmeliyiz. iste derdimizi bilgisayara anlatmaya, programcilik diyoruz. bunun icin bilgisayarin islem yapma, yani dusunme seklini anlamamiz gerekir.
bilgisayar ve beynin farki nedir?
insan beyni yuksek bir muhakeme yetenegine sahiptir. ornegin yaninizda calisan bir ciraga, sadece bakkaldan sut al gel demeniz yeterlidir. yaninizdaki cirak, sutu bakkalda bulacagini, almak icin para verecegini, para ustunu getirecegini ve nasil yuruyeceginden sutu nasil dusurmeden getirecegine kadar herseyi muhakeme eder. ama para ustunu aldiginda miktarin dogru oldugunu anlamak icin saymasi zaman alacaktir. belki ne kadar sut veya hangi markaoldugunu unutacaktir.
bilgisayara sut al gel dediginizde, ona sut alma islemini ayrintilarina kadar anlatmaniz gerekmektedir. yuru demek yetmez, once sag ayagini, sonra sol ayagini at. bu islemi otuz kere yapinca sola don oradaki kapidan don ve masanin basindaki adama "sut almak istiyorum" diye butun ayrintilari ile anlatmaniz gerekmektedir. ama bilgisayarin para ustunu saymasi saniyenin binde biri (milisecond) surmeyecektir ve ne istediginizi asla unutmayacaktir. eger bakkal bilgisayara "o sutten kalmadi baskasini vereyim mi?" diye sordugu anda ise calismasi duracaktir. cunku boyle bi durumda ne yapacagi ona anlatilmamistir. muhakeme yetenegini kullanarak "o zaman su marka sutten ver" diyemez.
iste bastan gercek hayatta cikabilecek butun ayrintilari dusunup, bu durumda ne yapacagini soylemek, programcinin isidir. -
2.
+6karmagib olmasin diye basitlestiriyorum, java bilenler ziplamasin. once alisveris ile ilgili mantigi ogretiyoruz.
public Alisveris{
alisverisListesi;
para = 0;
fiyat = 0;
alinanUrun;
paraAl(miktar){
para = miktar;
}
alisverisListesineEkle(urun){
alisverisListesi. ekle(malzeme);
}
satinAl(){
fiyat = bakkalaFiyatiSor();
bakkalaParayiVer(para);
alinanUrun = bakkaldanUrunAl();
para = bakkaldanParaUstunuAl();
}
}
gordugunuz gibi bakkalaFiyatiSor(); bakkalaParayiVer(para); bakkaldanUrunAl(); bakkaldanParaUstunuAl(); mantiklari programimizin icerisinde tanimli degil cunku ona biz karar veremeyiz. bu programimizin gercek hayatla iliskisini tasvir ediyor. bu websitesine giren bir kullanici da olabilir, bir sensor, elektronik devre de olabilir, bir veritabani da olabilir, baska bir program da olabilir. -
3.
+4bilgisayarla iletisim kurmanin zorluklari oldugu gibi kolayliklari da vardir. mesela muhakeme yetenegi olmadigindan siz ne dersiniz onu yapacaktir. ayrica hafizasina yazdigi birseyi asla unutmayacak ve binlerce kere hatasiz yapacaktir. simdi giderek daha teknik konulara giricem.
class, function ve degiskenler
bilgisayarla iletisim kurdugumuz dile programlama dili diyoruz. her dil genelde, class, sinif ve degiskenler uzerine insa edilmistir. bunun amaci bilgisayara bir kere ogrettigimiz seyi, tekrar tekrar kullanabilmemiz ve ogretmek istedigimiz butunu hiyerargib bir sekilde duzenlememizi saglamaktir. simdi ciragin sut alma konusuna donelim ve bir program yazalim. dedigim gibi ciraga sut al demeden once ona sut almak icin gereken hersey ogretmemiz gerekir. oncelikle programimizi temel islevsellikleri aciklayan class lara bolelim. son olarak da ogrettiklerimizi kullanacak bir class a ihtiyacimiz olacak.
SutAlanCirak programi
Class Alisveris
Class BakkalaGitmek
Class Cirak
temel olarak ciragin yapacagi isleri ve cikari olusturduk. daha sonra her class in icine programlamak istedigimiz mantigi ve saklamamiz gereken degerleri ekleyelim. ben okunabilirlik acisindan java dilini kullanicam. bu kucuk ornekten sonra da sizinle sohbet eden kucuk ornek bir program yazicaz. -
-
1.
+1güzel anlatıyorsun panpa.
-
1.
-
4.
+3public BakkalaGitmek{
bakkalinAdresi;
isyerininAdresi;
bakkalinAdresiniAl(adres){
bakkalinAdresi = adres;
}
isyerininAdresiniAl(adres){
isyerininAdresi = adres;
}
bakkalaGit(){
git(bakkalinAdresi);
}
isyerineDon(){
git(isyerininAdresi);
}
}
son olarak bu iki mantik demetini ciragin kullanmasi gerekiyor. Ama ciragin da ihtiyaci olan mantik sekillerini duzenli olarak kullanabilecegi bi tanima ihtiyac var. dikkat edin, programcilikta bu mantik demetleri arasinda bir hiyerarsi vardir. simdi programlayacagimiz cirak hem bakkala gitmeyi hem de alisveris yapmayi daha once tanimladigimiz mantiklar sayesinde kullanacak.
public Cirak{
alisveris = new Alisveris();
bakkal = new BakkalaGitmek();
alisverisYapGel(){
bakkal. bakkalaGit();
alisveris. satinAl();
bakkal. isyerineDon();
return alisveris. alinanUrun();
}
}
simdi ciragi bakkala sut almaya gonderiyoruz
cirak = new Cirak();
//yuz lira verdik
cirak. alisveris.paraAl(100);
//ne alacagini soyledik
cirak. alisveris.alisverisListesineEkle(süt);
//bakkalin adresini verdik
cirak. bakkal.bakkalinAdresiniAl("kosebasindaki kohne dukkan");
//isyerinin adresin ver calistigi yeri bile bilmiyo mal
cirak. bakkal.isyerininAdresiniAl("hergun calistigin yer iste amk");
//ve gonderiyoruz elemani
süt = cirak. alisverisYapGel();
simdi burada dikkat ederseniz, cirak bakkala gidip alisveris yapip dondukten sonra "return" kisminda alinan urunu geri verdi. yani cirak. alisverisYapGel(); fonksiyonu bize sonunda almak istedigimiz urun olarak dondu. -
5.
+2Cmd color b
-
6.
+2simdi yavas yavas orneklerden gercek programciliga girelim. bunun icin java kullanicaz ama her dil aynidir. nasil ingilizce, almanca, turkce, cince bir dilse, zor veya koay, kullanisli veya degil, gecerli veya degil, her dil assagi yukari herseyi anlatmaya yeter. programciligi da boyle dusunun. kitabi hangi dilde yazdiginiz onemli degil, onemli olan en iyi konustugunuz dilde ve iyi yazmanizdir.
-
7.
+2Okumayin bilgisayar oldum
-
8.
+1Algoritma...
Bu arada cp bu daha önce bir sitede okumuştum bunu -
-
1.
+5bul nerede okuduysan koy buraya, sana paypaldan 500€ hemen cikartiyorum. cikartmayan en adi huur cocugudur.
-
-
1.
-3Tam bu olmayabilir emin değilim ama çok benziyordu c# anlatıyor du
-
2.
-5Ve şimdi onla uğraşacak zamanım yok yatıp uyumak istiyorum yarın okul var :-)
-
1.
-
1.
-
9.
+1
degiskenler (variables)
degiskenler, bizim programin icinde kullandigimiz her turlu deger veya mantigi temsil edebilirler.
var a = 3; //sayi (integer) olabilirler
var b = "3"; //yazi (string) olabilirler
var c = true; //bir hukmun dogru veya yanlis oldugunu belirleyebilirler
sizin de daha kolay deneyebilmeniz icin javascript ile devam edecegim. javascript de diger diller gibi programciligin temel prensiplerini icinde barindirir. simdi f12 ye basip console yazan kisma su kodlari yazin (her satirdan sonra enter'a basin);
var a = 3;
var b = "3";
a+a;
console size 6 degerini verecektir. simdi diger degiskene bakalim.
b+b;
burada ise console size 33 degerini verecektir. bunun sebebi iki degiskenin tipinin ayri olmasidir. degisken a bir sayi oldugu icin onunla matematiksel islemleri yapabilirsiniz ama b degerinin cevresindeki " ler sayesinde bir yazi oldugu icin bilgisayar sadece iki yaziyi yanyana getirecektir ve size yine " ile cevrelenmis sekilde "33" degerini verecektir. -
10.
0reserved. güzel anlatım
-
11.
0Rezervasyon
-
12.
0degiskenlerden devam edelim. yukarda verdigim orneklere biraz aciklama getirmek istiyorum. yukaridaki orneklerde "var" kelimesini kullandik, bunun sebebi sudur. bir degiskenin degerini atamadan once olusturmamiz lazim. bunu da kullandigimiz dil javascript oldugu icin var ile yapiyoruz. daha sonra da ilk degerini veriyoruz. istersek once degiskeni olusturup sonra degerini de verebiliriz. acalim console u f12 ile;
var a;
a = "foo";
a;
gordugunuz gibi a nin degeri olusturulduktan sonra belirlendi. degiskeni var ile olusturmadan deger atarsak hata verir. bu var def vs gibi baska dillerde baska kelimeler ile olusturulabilir ama temel mantigi aynidir.
degiskenlerin degerini atarken mutlaka kendimiz belirlemek zorunda degiliz. bu degeri bilgisayara da hesaplatabiliriz ki ilerde genelde bu degerleri bilgisayar hesaplayacak. bu arada a ve b degiskenleri hala hafizada saklandigi icin, yeni isimler verelim. acalim f12 ile console lari:
var c = 3;
var d = c+1;
d;
c = c-1;
c;
d;
gordugunuz gibi d nin degeri 4 olarak belirlendi ve daha sonra yaptigimiz islemle c nin degeri 2 oldu. su onemli noktayi unutmayalim, d nin degerini atarken c yi kullandik, daha sonra c nin degerini degistirdik fakat d nin degeri degismedi. cunku degiskenin degeri atandigi anda hesaplandi. eger d nin degerinin her zaman c nin degerinden bir fazla olmasini istersek bunun icin degeri bir mantik tanimlayarak atamaliyiz. bu is icin de fonksiyonlari kullanmamiz gerekir. simdi ayni ornegi basit bir fonksiyonla yapicam, yarin da fonksiyonlar konusuna giricez. acalim simdi console u f12 ile:
var e = 5;
function yeniDeger(deger){
return deger+1;
}
var f = yeniDeger(e);
f;
e = e-1;
f;
e nin degeri basta 5 olarak atandi ama f nin degerini bir mantik belirleyerek atadik. dogal olarak f nin degerini her istedigimizde bilgisayar f nin degerini yeniden hesaplayacaktir. o yuzden f nin degeri once 6 e nin degeri 5 ken e nin degerini bir eksiltip f yi tekrar istedigimizde f nin degeri de bir eksilip 5 oldu. simdi bir sonraki bolumde fonksiyonlari anlaticam. simdi kullandigim function(deger) kismina kafa yormayin. hepsini anlaticam. -
13.
0rezervasyon
-
14.
0bilgisayara komut verdiğin dili bilgisayar nerden biliyor. o dili de mi programlamayla öğretiyorlar.
-
-
1.
0guzel bir soru. direk bilgisayarin islemcisi uzerinde calisan diller vardir. mesela MASM, assembly, machine code. bunlara low level programming languages denir. bizim kullandigimiz diller sonucta yazdigimiz kodu islemcinin okuyabildigi dile cevirir. ayrica islemler tamamen byte degerleri uzerinden gerceklesir. yani yazi da olsa, rakam da olsa boolean (true false) da olsa islemcide hepsi byte olarak okunur yazilir.
-
-
1.
0güzel cevap, teşekkürler. yazılımı hiç bilmeyen biri için hangi kaynağı önerirsin. kitap ya da site olabilir. ama hiç bir şey bilmiyor.
-
2.
0google playda bi uygulama vardı c# öğreten
-
1.
-
1.
-
15.
0reserve
-
16.
0hocam çok iyi devam et
-
17.
0=
functions (fonksiyonlar)
evet simdi fonksiyonlara bir giris yapalim. fonksiyonlar mantiksal parcalari tanimlar. javascriptte fonksiyonlari tanimlamak icin iki yontem vardir. tipki degiskenler gibi tanimlandiktan sonra hafizada kalirlar ve ihtiyaciniz oldugu zaman kullanirsiniz. tipki degiskeni tanimlamak icin var kelimesini kullandigimiz gibi, fonksiyonu tanimlamak icin de function kelimesini kullaniriz. acalim simdi f12 ile consolu. artik fonksiyonlara gectigimiz icin console u cok satirli haline getirirsek daha rahat olur. aslinda fonksiyon tek satirda da yazilabilir ama okunabilirlik acisindan cok satirli olmasi daha rahattir. evet console a iki ayri yontemle iki fonksiyon tanimlayalim ve calistiralim.
function kopek(){
alert("hav");
}
var kedi = function(){
alert("miyav");
}
kopek();
kedi();
birincisinde fonksiyona isim vererek tanimladik, ikincisinde de fonksiyonu kedi degiskenine deger olarak atadik. degiskenlere fonksiyonu bir deger olarak atayabildigimizi daha once anlatmistik. gordugunuz gibi iki fonksiyon da calisti, kopek fonksiyonu hav dedi, kedi fonksiyonu da miyav dedi. aslinda kopek'de fonksiyonu dogal haliyle tanimladik, kedi fonksiyonunda da anonymous denen sekilde
bu arada onemli biseye degineyim tekrar "yazi" eger bir yaziyi " isaretleri ile cevrelerseniz, bilgisayar onun bir yazi oldugunu anlar. eger cevrelemezseniz onun bir degisken oldugunu zanneder ve o degisken tanimli olmadigi icin hata verir. gordugunuz gibi bir fonksiyon su parcalardan olusur; -
18.
0hay amk boyle isin yazdigimin beste biri cikti, gerisi kesilmis. yarin devam ediyoruz gencler bu amk sitesini boyle abidik gubidik yazan arkadas da takip etsin bu yazi dizisini.
-
19.
0Bu adam bu isi biliyor
-
20.
0function selamVer(isim){
alert("selam "+isim);
};
function: fonksiyonu olusturmak icin kullaniyoruz
selamVer: fonksiyonun ismi
(): fonksiyonda kullanilan parametrelerin virgulle ayrilarak kondugu bolum
{}: fonksiyonun calistirmasi gereken mantigi tanimladigimiz bolum
fonksiyon tanimlandiktan sonra (); kullanarak o fonksiyonu tekrar tekrar calistirabiliriz;
function inci(){
alert("inci");
};
inci();
bu sekilde tanimladigimiz programlari calistiriyoruz.
fonksiyonlar programciligin en onemli temelidir, hatta bir program ic ice gecmis fonksiyonlardan olusur bile diyebiliriz. ayrica karmagib bir fonksiyonu daha ufak fonksiyonlara ayirip birbirinin icinde de kullanabiliriz. simdi acalim yine console lari ve su satirlari yazalim;
function cik(){
alert("cik cik");
}
function kus(){
cik();
}
kus();
burada cik isimli fonksiyonu kus isimlli fonksiyonun icinde cagirdik. daha onceki bolumde bir degiskenin degerini return sozcugunu kullanarak fonksiyonla atamistik. fonksiyonlar bir islem, bir mantigi calistirdigi gibi bazi degerleri de geri verebilirler ayni zamanda degiskenlerin degerini de degistirebilir. ama degiskenlerin degeri de bir fonksiyon olabilir. simdi her ikisine de bakalim. acin bakim console u f12 ile;
function sesVer(){
return "do";
}
var x = sesVer();
console.log(x);
gordugunuz gibi fonksiyonun verdigi degeri bir degiskene atadik yani degiskenin degerini simdi return kullanmadan ayni isi yapalim. dikkat edin, islem yapacagimiz degiskeni fonksiyondan once tanimlamamiz lazim. aciyoruz consolelari:
var x = "re";
function degistir(){
x = "mi";
}
console.log(x);
spora gidiyorum, donuste devam edelim gencler. bugun fonksiyonlar konusunu iyibi isleyelim, temelimiz saglam olsun ondan sonra if else while for gibi statement lere giricez.
başlık yok! burası bom boş!