folder Tahribat.com Forumları
linefolder Programlamaya Giriş
linefolder Kod Yazmanın Mantığı, Giriş



Kod Yazmanın Mantığı, Giriş

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek
    siyahbereli bunu yazdı
    yunusemre bunu yazdı

    Çok ucu açık bir soru sormuşsun. Milyon tane şey var mantığı anlatılabilecek. Neyi anlamadığını sorarsan onun üzerinden daha rahat yardımcı olabiliriz.

    abi bende anlatamıyorum ki, yumurta pişireceğiz diyelim; yumurta var mı, dolabı aç, dolap var mı, var, varsa, aç, yoksa, yumurta pişirmeyi unut, kuru ekmek var mı bak, var, kuru ekmek yada yumurta, yumurta için market var mı, var, varsa markete gitr yoksa kuru ekmek, markette kasaya git, al vsvs... bunların inciğine cincigine kadar yazarım yazılanlarında bir sürü eksiğini gediğini bulabilir. buraya kadar ok. amagel gelelim tek satır kod yazamıyorum sorun bu. syntax mı bilmiyorum. yoksa geri zekalımıyım, yoksa başka bir şey mi onu çözmeye çalışıyorum.

    ben programlama öğrenmek istemiyorum kafamda kurguladıklarımı rakamlara ve harflere = + neyse onlara dökemiyorum. sorun bu

    bu yaptığın şey zaten algoritma kurmak. Sanırım sen syntax bilmiyorsun, bu yüzden düşündüğünü koda çeviremiyorsun. 

    O 5 sayfa worde yazdığın algoritmayı yazılıma çevirmeden önce psudo kod ile yazmayı dene. 

     

     

     

     

    -BAŞLANGIÇ-

    >>> BAŞLA

    Yumurta = yok

    Tereyağ = Yok

    Tuz = Yok

    Tava = Yok

    Ocak = Yok

    Doğalgaz = Yok

     

    Tava var mı?

    - Evet

    --Tava = Var

    - Hayır

    ---> Markete Git

     

    Ocak var mı?

    - Evet

    -- Ocak = Var

    - Hayır

    ---> Markete Git

     

    (bunları yumurta tereyağ ve tuz için de yaz)

     

    >>> Yemek Yap

    tuz varsa VE tereyağ varsa VE yumurta varsa VE ocak varsa VE doğalgaz varsa VE tava varsa

    - Terayağını tavaya koy

    - Tavanın altını yak

    - 1 dakika bekle

    - Yumurtayı tavaya kır

    - 3 dakika bekle

    - Tavanın altını kapat

    - Yemeği ye

    ---> Bitir'e Git

    tuz yoksa VEYA tereyağ yoksa VEYA yumurta yoksa VEYA ocak yoksa VEYA doğalgaz yoksa VEYA tava yoksa

    ---> Markete Git

     

    >>> Markete Git

    - Eksik malzemeleri al

    ---> Başlaya Git

     

    >>> Bitir

    -BİTİŞ-

     

     

     

     

     

    Sonra bunu sevdiğin bir programlama dilinin syntax'ine çevir.

    Hiç programlama dili bilmiyorsan ve mantığı kavramak istiyorsan, linç edileceğimi bile bile söylüyorum, QBASIC programlama dilini öğren. Kafandaki soruları cevaplayacak ve sorduğun mantığı kavramanı sağlayacak dil bence o. Sonra istersen python, istersen c++, istersen php'ye, istersen vb.net 'e geç...

     

     

    NoktaliVirgul tarafından 22/May/20 10:26 tarihinde düzenlenmiştir

    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    whopper
    whopper's avatar
    Kayıt Tarihi: 26/Haziran/2008
    Erkek

    Hocam işin çok zor çok. Sıkı çalışman lazım. Bu kodda bu soruları soruyorsan işin var.

    Ünilerde lisansta verilem programming languages derslerine internetten bakmanda fayda görüyorum. Syntax o zaman sana daha anlamlı gelebilir. 

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    Problemi parçalara bölebiliyorsan işin %50 sini halletmiş olursun

    Örneğin bir pacman yazmak istiyorsun, problemi şu parçalara bölücen

    1) Ekrana bişey nasıl çizerim

    Ekrana pacman nasıl çizerim

    Pacmani nasıl animate ederim

    2) Klavyeden bi tuşa basıldığını nasıl algılarım

    Klavyeden ok tuşlarına basıldığnı nasıl algılarım

    3) Pacman in yönünü nasıl çeviririm?

    4) Pacmani nasıl yürütürüm?

    5) Labirenti nasıl çizerim?

    6) Labirentin içine yiycekleri nasıl dizeirm?

    7) Pacman yiyecegin üstünde mi nasıl bilirim?

    8) Yiyecegi ekrandan nasıl silerim

    9) Bütün yiyeceklerin tükendiğini nasıl anlarım

    10) Creeplerin kendi kendini oynamasını nasıl sağlarım 

    11) Creepin Pacmana dokunduğunu nasıl detect ederim?

    12) Pacmanın duvara çarptığını nasıl tespit ederim?

    13) Levelin sonuna geldiğimde nolacak?

    ...

    Pacmanı belki yazamazsın ama bu küçük parçaların birçoğunu yazabilirsin. Sonra diğer %50 de bu çözümleri okunabilir ve parametrik olacak şekilde birbiriyle birleştirmek yani bunların hepsini içiçe yazarsan senden başkası okuyamaz, muhtemelen sen de 1 ay sonra kendi kodunu okuyamazsın

    Konuyu anlatabileceğim en basit hali budur, işin gerçeği sorunun cevabının ne kadar kapsamlı olduğunu bilsen muhtemelen skerim pacmeni başıma bela mı arıyorum der uzaklaşırsın

     

     

    HolyOne tarafından 22/May/20 10:51 tarihinde düzenlenmiştir

    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek
    HolyOne bunu yazdı

    Problemi parçalara bölebiliyorsan işin %50 sini halletmiş olursun

    Örneğin bir pacman yazmak istiyorsun, problemi şu parçalara bölücen

    1) Ekrana bişey nasıl çizerim

    Ekrana pacman nasıl çizerim

    Pacmani nasıl animate ederim

    2) Klavyeden bi tuşa basıldığını nasıl algılarım

    Klavyeden ok tuşlarına basıldığnı nasıl algılarım

    3) Pacman in yönünü nasıl çeviririm?

    4) Pacmani nasıl yürütürüm?

    5) Labirenti nasıl çizerim?

    6) Labirentin içine yiycekleri nasıl dizeirm?

    7) Pacman yiyecegin üstünde mi nasıl bilirim?

    8) Yiyecegi ekrandan nasıl silerim

    9) Bütün yiyeceklerin tükendiğini nasıl anlarım

    10) Creeplerin kendi kendini oynamasını nasıl sağlarım 

    11) Creepin Pacmana dokunduğunu nasıl detect ederim?

    12) Pacmanın duvara çarptığını nasıl tespit ederim?

    13) Levelin sonuna geldiğimde nolacak?

    ...

    Pacmanı belki yazamazsın ama bu küçük parçaların birçoğunu yazabilirsin. Sonra diğer %50 de bu çözümleri okunabilir ve parametrik olacak şekilde birbiriyle birleştirmek yani bunların hepsini içiçe yazarsan senden başkası okuyamaz, muhtemelen sen de 1 ay sonra kendi kodunu okuyamazsın

    Konuyu anlatabileceğim en basit hali budur, işin gerçeği sorunun cevabının ne kadar kapsamlı olduğunu bilsen muhtemelen skerim pacmeni başıma bela mı arıyorum der uzaklaşırsın

     

     

    Fun Fact:

    Pacman'deki hayaletlerin çok ilkel bir yapay zekası olduğu biliyor muydunuz...

    https://www.youtube.com/watch?v=ataGotQ7ir8


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    siyahbereli
    siyahbereli's avatar
    Kayıt Tarihi: 03/Ocak/2006
    Erkek
    neverland bunu yazdı

    Veri tipleri vardır. Integer, string, float, double vs. vs. vs. Mesela perl dilinde veri tipi yoktur.

    $i = 1 der geçersin. $i = "hello" dersin falan.

    Her veri tipinin ram'de tutulduğu bir alan vardır. int- 2bytes, char 1-byte gibi. Bu da senin kodun derlenmeden memory'e ne kadarlık bir alana ihtiyacın olduğunu söyleme biçimindir. Yani daha az memory kullanarak yazılım yapabilirsin.

    örneğin c senden bir array tanımlarken boyutunu isterki memory'de o kadarlık alan açayım diye ama javascript'te array size vermeden direk array tanımlayabilirsin. Tabi c'de de dynamic array tanımlama yöntemi mevcut. Ama temel olarak basit şekilde bunu yapmana izin vermiyor.

    misal; c'de int arr[10]; dersin ama javascript'de arr= []; dersin ve arr.push diyerek istediğin kadar içerisine veri girebilirsin. Yanlış hatırlamıyorsam, c'de pointer'lardan yararlanabiliyordun ve malloc ile memory'de kendine alan açıyordun falan.

    diğer konu da şu işe yarıyor: iki tane integer sayıyı böldüğünde bazen float elde edebilirsin. Ama sen bunu bir integer değişkene atarsan sana doğru sonucu vermez. Ya da bir string ile integer'ı topladığında saçma sonuçlar almamana engel olur.

    Ayrıca "+" bazı dillerde birleştirme operatorü olarak kullanılır. Örneğin sen i'yi integer yerine string olarak tanımlasaydın, senin yeni i değeri "01" olacaktı. Ama sen burada toplama yapmak istiyordun fakat veri tipin hatalı olduğu için bilgisayar bunu yanlış yorumladı ve yanlış bir sonuç elde ettin vs.

     

    Diğer yazdığın ise, çoğu programlama dilinde "=" assign yani atama görevi görür. Bir eşitlik belirtmez. Sağdaki değeri soldakine atayacağında "=" kullanırsın. Fakat istisnai olarak delphi'de atama belirteçi ":=" budur. 

    Eşitlik için kullanılan "==", denklik için kullanılan "===" dir. Tabi yine delphi'de "=" eşitlik belirtir.

    İşin özü bütün bunlar yazılım dilinin syntax'ına göre değişir. O syntax'ı öğrenmek için de o dili öğrenmen gerekir. Yabancı dil gibi düşün. Biz ambulans dememize rağmen, ingilizler ve amerikalılar ambulance diyor. 

    Syntax ve neyi nereye yazacağını bilmek miş olay hocam sağolasın. oradan ilerleyeceğim. ayrıca detaylı yazmışsın takıldığım yerde bakacağım. teşekkür ederim


    Yapmadıklarınıza pişman olmaktansa, Yaptıklarınıza pişman olun...Yapın pişman olun, yada yapmayın yine pişman olun.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    siyahbereli
    siyahbereli's avatar
    Kayıt Tarihi: 03/Ocak/2006
    Erkek
    akrepkral53 bunu yazdı

    hocam çok ince gitmeye çalışıyorsun anladığım kadar. kod yazmayı bırak hayatta bile çok ince düşünmek insanı geriye düşürüyor bazen. kendimden biliyorum bunu. hani derler ya sonunu düşünen kahraman olamaz. akışına bırakmaya çalışıyorum bir çok şeyi.

    bilgi sahibi olan kişilerle bir projenin içine girsen çok daha rahat bulursun sorularının cevabını. en azından bir çoğunun. hatta zamanla assembly dilin içine girip kendini hiç düşünmediğin yerlerde bulabilirsin.

    lisede yazılım okudum. ilk sene idi galiba 3-5 satır visual basic koduna 2-3 saat baka kaldım. burda bana ne demek istiyor. neden, niçin, nasıl vs. vs.

    aklıma şu fıkra geldi. dünyadaki en iyi bilgisayara her ülkeden bir kişi davet ederek soru sorduruyorlar. bizden de temeli yolluyorlar. diğer ülkelerden gelenler bilgisayara soru soruyor, bilgisayar da şak diye cevabını veriyor. sıra temele geliyor. şöyle bilgisayara bir iki sağdan soldan bakıyor ve soruyor. ula ne var ne yok. bilgisayarın beyni karışıyor ve pert oluyor.

    her şeyi en ince ayrıntısına kadar anlamak, soruşturmak bazen bizi de pert ediyor :)

    katılıyorum biraz ayrıntılı iş yapmak var bende, yorumsuz bakan adam yorumlamaması lazım. şak diye her şeyin görünüyor olması, tüm ihtimallerin düşünülmüş olması lazım. gibi gibi. biraz ezberede kaçıp sonra detaylara da girmek te bir yöntem. teşkr.


    Yapmadıklarınıza pişman olmaktansa, Yaptıklarınıza pişman olun...Yapın pişman olun, yada yapmayın yine pişman olun.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    siyahbereli
    siyahbereli's avatar
    Kayıt Tarihi: 03/Ocak/2006
    Erkek
    italyan bunu yazdı
    siyahbereli bunu yazdı
    italyan bunu yazdı

    int i;
    i=0;
    while(i<20)
    i=i+1;

    Şu kodu okurken kafası senin dediğin şekilde karışan kişi disleksidir.

    :) yapma beh, matematiğim zayıf, hep ilgisiz hocalara denkgeldim serserilik yaptık, ben matematik ile ilgili zannediyorum

    Matematiğinin zayıf olmasının sebebi bile disleksi olabilir. Online bi test yap.Türkiyede bizim jenerasyonda bi ton disleksi var ve kimse farketmemiş. Çırpına çırpına nerelere geldik amk... 

    türkçe bir sitede yaptım sorular basit geldi, ama yinede %27 çıktı.. olabilir falan diyor. fırsat bulunca detaylı olanlarada bakacağım.


    Yapmadıklarınıza pişman olmaktansa, Yaptıklarınıza pişman olun...Yapın pişman olun, yada yapmayın yine pişman olun.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    siyahbereli
    siyahbereli's avatar
    Kayıt Tarihi: 03/Ocak/2006
    Erkek
    NoktaliVirgul bunu yazdı
    siyahbereli bunu yazdı
    yunusemre bunu yazdı

    Çok ucu açık bir soru sormuşsun. Milyon tane şey var mantığı anlatılabilecek. Neyi anlamadığını sorarsan onun üzerinden daha rahat yardımcı olabiliriz.

    abi bende anlatamıyorum ki, yumurta pişireceğiz diyelim; yumurta var mı, dolabı aç, dolap var mı, var, varsa, aç, yoksa, yumurta pişirmeyi unut, kuru ekmek var mı bak, var, kuru ekmek yada yumurta, yumurta için market var mı, var, varsa markete gitr yoksa kuru ekmek, markette kasaya git, al vsvs... bunların inciğine cincigine kadar yazarım yazılanlarında bir sürü eksiğini gediğini bulabilir. buraya kadar ok. amagel gelelim tek satır kod yazamıyorum sorun bu. syntax mı bilmiyorum. yoksa geri zekalımıyım, yoksa başka bir şey mi onu çözmeye çalışıyorum.

    ben programlama öğrenmek istemiyorum kafamda kurguladıklarımı rakamlara ve harflere = + neyse onlara dökemiyorum. sorun bu

    bu yaptığın şey zaten algoritma kurmak. Sanırım sen syntax bilmiyorsun, bu yüzden düşündüğünü koda çeviremiyorsun. 

    O 5 sayfa worde yazdığın algoritmayı yazılıma çevirmeden önce psudo kod ile yazmayı dene. 

     

     

     

     

    -BAŞLANGIÇ-

    >>> BAŞLA

    Yumurta = yok

    Tereyağ = Yok

    Tuz = Yok

    Tava = Yok

    Ocak = Yok

    Doğalgaz = Yok

     

    Tava var mı?

    - Evet

    --Tava = Var

    - Hayır

    ---> Markete Git

     

    Ocak var mı?

    - Evet

    -- Ocak = Var

    - Hayır

    ---> Markete Git

     

    (bunları yumurta tereyağ ve tuz için de yaz)

     

    >>> Yemek Yap

    tuz varsa VE tereyağ varsa VE yumurta varsa VE ocak varsa VE doğalgaz varsa VE tava varsa

    - Terayağını tavaya koy

    - Tavanın altını yak

    - 1 dakika bekle

    - Yumurtayı tavaya kır

    - 3 dakika bekle

    - Tavanın altını kapat

    - Yemeği ye

    ---> Bitir'e Git

    tuz yoksa VEYA tereyağ yoksa VEYA yumurta yoksa VEYA ocak yoksa VEYA doğalgaz yoksa VEYA tava yoksa

    ---> Markete Git

     

    >>> Markete Git

    - Eksik malzemeleri al

    ---> Başlaya Git

     

    >>> Bitir

    -BİTİŞ-

     

     

     

     

     

    Sonra bunu sevdiğin bir programlama dilinin syntax'ine çevir.

    Hiç programlama dili bilmiyorsan ve mantığı kavramak istiyorsan, linç edileceğimi bile bile söylüyorum, QBASIC programlama dilini öğren. Kafandaki soruları cevaplayacak ve sorduğun mantığı kavramanı sağlayacak dil bence o. Sonra istersen python, istersen c++, istersen php'ye, istersen vb.net 'e geç...

     

     

    katılıyorum hocam, algoritmayı yazacağım. sonra syntaxa dökeceğim. syntaxı da baka baka deneye deneye.. süper teşkr


    Yapmadıklarınıza pişman olmaktansa, Yaptıklarınıza pişman olun...Yapın pişman olun, yada yapmayın yine pişman olun.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    siyahbereli
    siyahbereli's avatar
    Kayıt Tarihi: 03/Ocak/2006
    Erkek
    HolyOne bunu yazdı

    Problemi parçalara bölebiliyorsan işin %50 sini halletmiş olursun

    Örneğin bir pacman yazmak istiyorsun, problemi şu parçalara bölücen

    1) Ekrana bişey nasıl çizerim

    Ekrana pacman nasıl çizerim

    Pacmani nasıl animate ederim

    2) Klavyeden bi tuşa basıldığını nasıl algılarım

    Klavyeden ok tuşlarına basıldığnı nasıl algılarım

    3) Pacman in yönünü nasıl çeviririm?

    4) Pacmani nasıl yürütürüm?

    5) Labirenti nasıl çizerim?

    6) Labirentin içine yiycekleri nasıl dizeirm?

    7) Pacman yiyecegin üstünde mi nasıl bilirim?

    8) Yiyecegi ekrandan nasıl silerim

    9) Bütün yiyeceklerin tükendiğini nasıl anlarım

    10) Creeplerin kendi kendini oynamasını nasıl sağlarım 

    11) Creepin Pacmana dokunduğunu nasıl detect ederim?

    12) Pacmanın duvara çarptığını nasıl tespit ederim?

    13) Levelin sonuna geldiğimde nolacak?

    ...

    Pacmanı belki yazamazsın ama bu küçük parçaların birçoğunu yazabilirsin. Sonra diğer %50 de bu çözümleri okunabilir ve parametrik olacak şekilde birbiriyle birleştirmek yani bunların hepsini içiçe yazarsan senden başkası okuyamaz, muhtemelen sen de 1 ay sonra kendi kodunu okuyamazsın

    Konuyu anlatabileceğim en basit hali budur, işin gerçeği sorunun cevabının ne kadar kapsamlı olduğunu bilsen muhtemelen skerim pacmeni başıma bela mı arıyorum der uzaklaşırsın

     

     

    Üstad, maddelere bakarak söylüyorum cahilce bir şey söylersem affola, Sonucu geriye doğru bölümlendirmeyi yapabileceğimi düşünüyorum.. tabi ekrana çizgi çizme aşamasınıda deneyerek öğreneceğim. kodun okunaklı olması, hangi kodun ne işe yaradığı textlerle belirterek Camelcase kuralları yazılması, önce analizin hazırlanması, sonra algoritmanın hazırlanması, en son aşama koda dökülmesi ve yazılan her şeyin not alınması gibi gibi. disiplin konusu perfect orada sorun yok bunlara farkıdnalığım var. çalışssında nasıl çalışırsa çalışssın şeklinde düşünmüyorum. analiz algortima örneğinide not alıp an azından uğraşacağım. Teşekkür ederim.


    Yapmadıklarınıza pişman olmaktansa, Yaptıklarınıza pişman olun...Yapın pişman olun, yada yapmayın yine pişman olun.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Wort
    Wort's avatar
    Kayıt Tarihi: 11/Haziran/2015
    Erkek
    siyahbereli bunu yazdı
    italyan bunu yazdı
    siyahbereli bunu yazdı
    italyan bunu yazdı

    int i;
    i=0;
    while(i<20)
    i=i+1;

    Şu kodu okurken kafası senin dediğin şekilde karışan kişi disleksidir.

    :) yapma beh, matematiğim zayıf, hep ilgisiz hocalara denkgeldim serserilik yaptık, ben matematik ile ilgili zannediyorum

    Matematiğinin zayıf olmasının sebebi bile disleksi olabilir. Online bi test yap.Türkiyede bizim jenerasyonda bi ton disleksi var ve kimse farketmemiş. Çırpına çırpına nerelere geldik amk... 

    türkçe bir sitede yaptım sorular basit geldi, ama yinede %27 çıktı.. olabilir falan diyor. fırsat bulunca detaylı olanlarada bakacağım.

    Bircok dahi disleksiymiş Bill Gates de bunlardan.


    Karanlıklara sitem edeceğimize hepimiz bir mum yaksak karanlıklar aydınlığa dönerdi…
Toplam Hit: 5212 Toplam Mesaj: 46
programlama temeli mantığı