Şimdi Ara

Yazılıma Nereden Başlanır? (2. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
29
Cevap
2
Favori
2.169
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 12
Sayfaya Git
Git
Giriş
Mesaj
  • Oğuzhaan kullanıcısına yanıt
    @Oğuzhaan Çok zor bir soru mu sordum?
  • https://paste.ubuntu.com/p/PHZk3xXfQX/

    dili hic bilmiyordum input almayi anlamadim 2 saatte ancak bunu yazabildim.
    kor olmak icin ideal bir dil gibi geldi.
  • Programdaki comment ve boş satırları çeksek dahi 29 satır ayrıca hatalı ve eksiklerle dolu örneğin TL'yi hardcoded basıyor, fakat onu kullanıcıdan almalı. Kullanıcı belki u.arası para transferinde kullanılan TRY birimini kullanmak isteyecek.

    Değişken ismi olarak l l1 l2 yerine list list1 list2 olmalı veya hadi li li2 li2 olsun.

    len fonksiyonu külliyen yanlış. 'length' değişkeni tanımlanamaz cunku o Scheme de ön tanımlı bi fonksiyon örneğin (length '(a b c)) ; -> 3 döndürür.

    len fonksiyonundaki (cdr list) '() ye eşitse değişken tanımlamak gereksiz. fonksiyonun altında (len 0 hebele) ile hebele nin uzunluğunu sıfırlamak da poor programming practice (tam türkçesi yok)

    retn fonksiyonunu tanımlamak da gereksiz cunku Scheme'de o iş 'list-ref' fonksiyonuyla yapılıyor örneğin (list-ref l n) , l'deki n. indexteki elemana ulaşır (n 0 tabanlı)

    printleyici fonksiyonu sonuçta list1 ve list2 deki karşılıklı degerleri çarparak basacak, bunu 'and' koşulu altında rekürsif şekilde yapmaya calışınca alttaki parantezleri son satıra alsak bile 12 satır uzunluğunda tam bir felaket. Scheme'in rekürsif özelliğini kullanmak istiyorsan programın genelinde kullanman daha iyi olur, şunun gibi:

    (define (hesapla maaslar oranlar birim)
    (if (null? maaslar)
    'bitti
    (begin
    (format #t "Maaş:~a, Yeni: ~f0~a~n" (car maaslar) (round (* (* (car maaslar) 1) (car oranlar))) birim)
    (hesapla (cdr maaslar) (cdr oranlar) birim))))



    Bu programı (hesapla hebele hubele "TL") şeklinde çalıştırırsan çalışır. format içindeki ~f0 ifadesini sadece Cisco'nun Scheme yorumlayıcısı tanır. MIT Scheme veya başka bir yorumlayıcı kullanıyorsan onu ~a ile değiştir.

    Rekürsif 6 satır süren bu programı iterasyon ile yazmak sadece 3 satır:

    (define (hesapla maas artis birim)
    (do ((x 0 (+ x 1))) ((equal? x (length maas)) 'ok)
    (format #t "Maaş:~a Yeni:~a~a~n" (list-ref maas x) (* (list-ref maas x) (list-ref artis x)) birim)))

    (hesapla '(2020 3400 5500) '(1.25 1.1 1.0) "TL") ; ->
    ;; Maaş:2020 Yeni:2525.0TL
    ;; Maaş:3400 Yeni:3740.0TL
    ;; Maaş:5500 Yeni:5500.0TL
    ;; ok




  • tesekkurler, + bile fonksiyon olunca dilde loop yok her seyi fonksiyonlarla yapmamiz gerek diye dusunmusum

    isi bilince benim kod kadar kotu gozukmuyor ama uzun programlarda yine sytax yuzunden kor eder saniyorum.
  • + bile fonksiyon olabiliyor cunku Scheme'de + C veya Python'daki gibi toplama operatörü olarak tanımlı değil. Kodda iterasyonu gerçekleştiren 'do' ise fonksiyon gibi görünmekle birlikte, fonksiyon değil. Scheme'de yeni syntax tanımlamayı sağlayan 'define-syntax' ile tanımlanmış bir makro :) Makro derken C'deki makrolar gibi sadece değişkenleri yerine koyan basit birşey değil, gerçekten dilin bir parçası gibi çalışan makro. do makrosu örneğin orada dilin bir parçası gibi çalışıyor.

    Scheme'deki bu yapıyı bir kez öğrenince program yazmak cok kolaylaştığı gibi kısa ve öz programlar ortaya cıkıyor.
  • Tuğkan-0153 kullanıcısına yanıt
    Hocam sıfırdan web tasarımına başlamak için ne öğrenmek lazım bazı kişiler direk başlangıç olarak html5 öğrenmemi söylüyorlar daha önce yazılıma dair bildiğim hiç birşey yok nasıl başlarım bir yol haritası arıyorum.

    < Bu ileti Android uygulamasından atıldı >
  • HTML5 öğrenmekten cok HTML ile idealindeki bir tasarımı uygula, bunun için Static Site Generator (son yıllarda birçok değişik SSG geliştirildi) kullanabilirsin, ilk başta Django yada WordPress kasar. Sonuçta hiçten başlayarak tümünü kendin yaptığın bir referans projen olmalı.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 
Sayfa: önceki 12
Sayfaya Git
Git
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.