You need to enable JavaScript to run this app.

Ana içeriğe geç

Yazar: KodlarTR
Akıllı Ev Sistemleri Algoritması
Kodlamanın gerçek hayattaki problemlerle nasıl iç içe olduğunu görmek oldukça önemli. İşte kodlama becerileriyle çözülebilecek gerçek dünya problemlerine dayalı algoritma örneği
1. Akıllı Ev Sistemleri (IoT):
  • Problem: Evdeki cihazların (ışıklar, termostat, güvenlik kameraları vb.) kullanıcı tercihlerine ve çevresel koşullara göre otomatik olarak kontrol edilmesi.
  • Algoritma:
    1. Veri Toplama: Sensörlerden (ışık seviyesi, sıcaklık, hareket algılama) ve kullanıcı ayarlarından (istenilen sıcaklık, zaman çizelgeleri) veri al.
    2. Koşul Değerlendirme: Alınan verilere göre belirli koşulları kontrol et (örneğin, dışarıda hava karardığında veya hareket algılandığında).
    3. Karar Verme: Koşullar sağlandığında hangi eylemlerin gerçekleştirileceğine karar ver (örneğin, ışıkları aç, termostatı ayarla, alarmı etkinleştir).
    4. Eylem Uygulama: İlgili cihazlara komut göndererek eylemleri gerçekleştir.
    5. Geri Bildirim: Gerekirse kullanıcıya bildirim gönder veya sistem durumunu güncelle.
  • Kodlama Alanları: Python (veri işleme, makine öğrenimi), C/C++ (gömülü sistemler), JavaScript (web arayüzü).
Yazar: KodlarTR
Sabah Rutini Algoritması Smile
Kesinlikle! Günlük hayatımızda farkında olsak da olmasak da birçok problem aslında bir algoritma mantığıyla çözülüyor. İşte birkaç örnek:
1. Sabah Rutini:
  • Problem: Sabah kalktıktan sonra okula/işe/randevuya yetişmek.
  • Algoritma:
    1. Çalar saat çalınca uyan.
    2. Yataktan kalk.
    3. Tuvalete git.
    4. Kahvaltıyı hazırla ve ye.
    5. Giysilerini giy.
    6. Dişlerini fırçala.
    7. Çantanı kontrol et (gerekli eşyalar var mı?).
    8. Evden çık.
    9. Ulaşım aracına bin veya yürü.
    10. Hedefe var.

Neden Algoritma: Bu adımlar belirli bir sırayla takip edildiğinde hedefe ulaşmayı garanti eder. Adımların sırası değişirse (örneğin, giyinmeden önce evden çıkmak) problem yaşanabilir.
Yazar: admin
Kodlar Forum'a hoş geldiniz!
 Belki de buraya ilk satır kodunuzu yazmak için geldiniz, belki de sadece merakınızı gidermek ve bu heyecan verici dünyaya adım atmak istiyorsunuz. Her ne sebeple burada olursanız olun, doğru yerdesiniz.
Unutmayın, her büyük maceranın bir başlangıcı vardır ve kodlama dünyası keşfedilmeyi bekleyen sonsuz bir evren gibidir. İlk başta bazı kavramlar karmaşık gelebilir, hatalarla karşılaşmak canınızı sıkabilir. Ama endişelenmeyin, hepimiz o yollardan geçtik. Burası, takıldığınız noktalarda size yol gösterecek, başarılarınızı paylaşacak ve öğrenme sürecinizde size destek olacak bir topluluk.
Bu forum, sadece teknik bilgi alışverişi yapılan bir yer değil, aynı zamanda bir öğrenme ve büyüme ortamıdır. Burada yeni insanlarla tanışabilir, farklı bakış açıları edinebilir ve projeleriniz için ilham bulabilirsiniz.

Tekrar hoş geldiniz! Kodlamanın büyülü dünyasına ilk adımınızı atmanızdan dolayı çok heyecanlıyız!
Unutmayın:
  • Soru sormaktan asla çekinmeyin.
  • Başkalarının sorularına yardımcı olmaya çalışın.
  • Öğrenmekten ve denemekten vazgeçmeyin.
  • En önemlisi, eğlenin!
Siz de bu topluluğun bir parçası olduğunuz için mutluyuz. Hadi, kodlamaya başlayalım!
Forum: Yeni Gelenler
1 Yorum
Yazar: admin
Stack Avantajı ve Dezavantajları

Stack, LIFO prensibine göre çalışan temel bir doğrusal veri yapısıdır. Ekleme (push) ve çıkarma (pop) işlemleri sadece en üstten yapılır. Fonksiyon çağrıları, geri alma/ileri alma işlemleri, tarayıcı geçmişi, ifade değerlendirme gibi birçok alanda önemli bir rol oynar. Dizi veya bağlı liste kullanılarak uygulanabilir ve basit, hızlı bir yapıya sahiptir ancak sınırlı erişim ve potansiyel boyut sorunları dezavantajları olabilir.
Stack'in Avantajları:
  • Basit ve Anlaşılır Yapı: LIFO prensibi sayesinde kolayca anlaşılabilir ve uygulanabilir bir veri yapısıdır.
  • Hızlı Ekleme ve Çıkarma: En üstteki elemanlara ekleme ve çıkarma işlemleri genellikle sabit zamanda (O(1)) gerçekleştirilir.
  • Geri alma işlemleri: Örneğin tarayıcı geri tuşu, metin editörlerinde “undo” gibi işlemlerde etkilidir.
Stack'in Dezavantajları:
  • Sınırlı Erişim: Stack'teki herhangi bir elemana doğrudan erişim mümkün değildir. Sadece en üstteki elemana erişilebilir.
  • Boyut Sınırlaması (Dizi Uygulaması): Dizi tabanlı uygulamalarda stack'in boyutu önceden belirlenmelidir ve bu da taşma veya yetersiz alan sorunlarına yol açabilir. Bağlı liste uygulamalarında bu sınırlama daha azdır ancak ek bellek kullanımı söz konusudur.
  • Taşma riski (stack overflow): Özellikle çok fazla özyinelemeli fonksiyonlarda belleği taşır.
Yazar: admin
Stack (Yığın) Nedir?
Stack, LIFO (Last-In, First-Out - Son Giren İlk Çıkar) prensibine göre çalışan doğrusal bir veri yapısıdır. Günlük hayattaki üst üste dizilmiş tabaklara benzetilebilir. En son eklenen tabak en üstte yer alır ve ilk olarak o alınır. Aynı şekilde, bir stack'e en son eklenen eleman (push işlemi) ilk olarak çıkarılır (pop işlemi).  Stack, LIFO prensibine göre çalışan temel bir doğrusal veri yapısıdır. Ekleme (push) ve çıkarma (pop) işlemleri sadece en üstten yapılır. Fonksiyon çağrıları, geri alma/ileri alma işlemleri, tarayıcı geçmişi, ifade değerlendirme gibi birçok alanda önemli bir rol oynar. Dizi veya bağlı liste kullanılarak uygulanabilir ve basit, hızlı bir yapıya sahiptir ancak sınırlı erişim ve potansiyel boyut sorunları dezavantajları olabilir.

Stack'in Çalışma Prensibi (LIFO):

LIFO prensibi, stack'e en son eklenen elemanın, çıkarılacak ilk eleman olacağını ifade eder. Bu özellik, belirli algoritmaların ve işlemlerin doğal bir şekilde modellenmesini sağlar.
Stack'in Uygulanması:
Stack, genellikle iki temel yöntemle uygulanabilir:
  1. Diziler (Arrays) ile Uygulama:
    • Sabit veya dinamik boyutlu diziler kullanılabilir.
    • Stack'in en üstünü takip etmek için bir "top" (veya "pointer") değişkeni kullanılır.
    • Push işlemi: "top" değeri bir artırılır ve yeni eleman dizinin bu yeni indeksine yerleştirilir.
    • Pop işlemi: Eğer stack boş değilse, dizinin "top" indeksindeki eleman döndürülür ve "top" değeri bir azaltılır.
    • Avantajları: Basit ve hızlı erişim.
    • Dezavantajları: Sabit boyutlu dizilerde taşma (overflow) riski, dinamik boyutlu dizilerde ise yeniden boyutlandırma maliyeti olabilir.
  2. Bağlı Listeler (Linked Lists) ile Uygulama:
    • Her elemanın (node) hem veriyi hem de bir sonraki elemanın adresini tuttuğu bir yapı kullanılır.
    • Stack'in en üstü, bağlı listenin başı (head) olarak kabul edilir.
    • Push işlemi: Yeni bir node oluşturulur, verisi atanır ve bu node, mevcut başa bağlanır. Yeni node, listenin yeni başı olur.
    • Pop işlemi: Eğer stack boş değilse, baştaki node'un verisi döndürülür ve baş, bir sonraki node'a kaydırılır.
    • Avantajları: Dinamik boyut, taşma riski daha az (bellek sınırları dahilinde).
    • Dezavantajları: Diziye göre biraz daha fazla bellek kullanımı (pointer için ek alan) ve elemanlara doğrudan erişim olmaması.
Yazar: admin
Kodlamaya Yeni Başlayanlar Buraya!
Kodlamaya yeni başlayanlar için bazı temel ve pratik tavsiyelerim var:
Temel Kavramları Sağlamlaştırın:
  1. Temel Mantığı Anlayın: Kodlamanın sadece sözdiziminden ibaret olmadığını unutmayın. Öncelikle problem çözme mantığını, algoritmaları ve veri yapılarını anlamaya çalışın. Bu, hangi dili öğrenirseniz öğrenin size yardımcı olacaktır.
  2. Bir Dil Seçin ve Ona Odaklanın: Başlangıçta birçok farklı dil öğrenmeye çalışmak kafa karıştırıcı olabilir. İlgi alanlarınıza ve hedeflerinize uygun bir dil seçin (örneğin, web geliştirme için JavaScript veya Python, veri bilimi için Python) ve ona odaklanın. Temelleri iyice öğrenmeden başka bir dile geçmeyin.
  3. Sözdizimini Öğrenin Ama Ezberlemeyin: Her dilin kendine özgü bir sözdizimi vardır. Bunu öğrenmek önemlidir ancak her şeyi ezberlemeye çalışmayın. Temel yapıları ve anahtar kelimeleri anladıktan sonra, gerektiğinde kaynaklara başvurmaktan çekinmeyin.
Pratik Yapmak Şart:
  1. Bol Bol Kod Yazın: Teorik bilgi tek başına yeterli değildir. Öğrendiklerinizi pekiştirmek için düzenli olarak kod yazın. Basit projelerle başlayın ve zamanla zorluk seviyesini artırın.
  2. Küçük Projelerle Başlayın: "Merhaba Dünya" uygulaması gibi basit projelerle başlayın ve yavaş yavaş daha karmaşık görevlere geçin. Örneğin, basit bir hesap makinesi, bir yapılacaklar listesi uygulaması veya bir blog sayfası oluşturabilirsiniz.
  3. Mevcut Kodları İnceleyin: Başkalarının yazdığı kodları okumak ve anlamaya çalışmak da çok öğreticidir. Açık kaynaklı projelere göz atabilir veya örnek kodları inceleyebilirsiniz.
Öğrenme Sürecini Yönetmek:
  1. Sabırlı Olun ve Pes Etmeyin: Kod öğrenmek zaman ve sabır gerektirir. Başlangıçta hatalarla karşılaşmak ve zorlanmak normaldir. Önemli olan pes etmemek ve hatalarınızdan ders çıkarmaktır.
  2. Hata Ayıklamayı Öğrenin (Debugging): Kodunuzda hatalar (bug) olması kaçınılmazdır. Hata mesajlarını okumayı, anlamayı ve hataları ayıklama tekniklerini öğrenmek çok önemlidir. Tarayıcı geliştirici araçları veya IDE'lerin hata ayıklama özelliklerini kullanmayı öğrenin.
  3. Kaynaklardan Yararlanın: İnternet, kod öğrenmek için muazzam bir kaynak deposudur. Online kurslar, öğreticiler, belgeleme siteleri, forumlar ve topluluklar size yardımcı olabilir. Güvenilir ve güncel kaynakları takip edin.
  4. Düzenli Çalışın: Her gün kısa bir süre bile olsa düzenli olarak kod çalışmak, bilgilerinizi taze tutmanıza ve ilerleme kaydetmenize yardımcı olur.
Topluluk ve İşbirliği:
  1. Bir Topluluğa Katılın: Diğer öğrenenlerle veya deneyimli geliştiricilerle iletişim kurmak motivasyonunuzu artırabilir ve sorunlarınıza çözüm bulmanıza yardımcı olabilir. Online forumlara, sosyal medya gruplarına veya yerel buluşmalara katılabilirsiniz.
  2. Soru Sormaktan Çekinmeyin: Takıldığınız noktalarda soru sormaktan çekinmeyin. Öğrenmenin en iyi yollarından biri soru sormaktır. Ancak sorunuzu sormadan önce araştırma yaptığınızdan ve sorunuzu açık ve anlaşılır bir şekilde ifade ettiğinizden emin olun.
Ek Tavsiyeler:
  1. Kodunuzu Düzenli Tutun: Anlaşılır ve düzenli kod yazmaya özen gösterin. İsimlendirme kurallarına uyun, yorumlar ekleyin ve kodu mantıksal bloklara ayırın. Bu, hem sizin hem de başkalarının kodunuzu anlamasını kolaylaştırır.
  2. Versiyon Kontrolünü Öğrenin (Git): Git gibi bir versiyon kontrol sistemi kullanmayı öğrenmek, projelerinizi yönetmek, değişiklikleri takip etmek ve başkalarıyla işbirliği yapmak için çok önemlidir.
  3. Öğrenmeyi Bırakmayın: Teknoloji sürekli gelişiyor. Bir dili veya alanı öğrendikten sonra bile yeni şeyler öğrenmeye ve kendinizi geliştirmeye devam edin.
Kodlama Hayatınızda başarılar dilerim bir adım siz attınız diğer adımınız için sizlere yardımcı olmaya devam edeceğiz Kodlar.TR'yi takip etmeyi bırakmayın..
Yazar: admin
Semantik HTML Nedir
Semantik HTML, web sayfalarının içeriğini hem tarayıcılara hem de geliştiricilere anlamlı bir şekilde açıklayan HTML etiketlerini kullanma pratiğidir. Temel amaç, içeriğin yalnızca nasıl göründüğünü değil, ne anlama geldiğini de vurgulamaktır.
Geleneksel HTML'de, içeriği biçimlendirmek için sıklıkla
Kod:
<div>
ve
Kod:
<span>
gibi genel amaçlı etiketler kullanılırdı. Bu etiketler, içeriğin yapısı hakkında çok az bilgi verir veya hiç bilgi vermezdi. Semantik HTML ise
Kod:
<article>
,
Kod:
<nav>
,
Kod:
<aside>
,
Kod:
<header>
,
Kod:
<footer>
gibi içeriğin rolünü ve anlamını açıkça belirten etiketler sunar.
Semantik HTML'in Faydaları Nelerdir?
  • Daha İyi SEO (Arama Motoru Optimizasyonu): Arama motorları, semantik etiketleri kullanarak içeriğin bağlamını ve önemini daha iyi anlayabilir. Bu da arama sonuçlarında daha iyi sıralamalar elde etmeye yardımcı olabilir. Örneğin, bir
    Kod:
    <article>
    etiketi içindeki içeriğin bir makale olduğunu anlarlar ve buna göre değerlendirirler.
  • Daha Erişilebilir Web Siteleri: Ekran okuyucular gibi yardımcı teknolojiler, semantik etiketleri kullanarak içeriği daha doğru bir şekilde yorumlayabilir ve kullanıcılara aktarabilir. Bu, web sitenizin daha geniş bir kitleye ulaşmasını sağlar. Örneğin,
    Kod:
    <nav>
    etiketi bir gezinme bölümünü işaret eder ve ekran okuyucular bu bilgiyi kullanıcılara iletebilir.
  • Daha Anlaşılır ve Bakımı Kolay Kod: Semantik etiketler, HTML kodunun okunabilirliğini ve anlaşılırlığını artırır. Geliştiriciler, etiketlerin anlamını bildikleri için kodun ne yaptığını daha kolay anlayabilir ve üzerinde değişiklik yapabilirler. Bu da uzun vadede web sitesinin bakımını kolaylaştırır.
  • Daha İyi Yapılandırılmış İçerik: Semantik etiketler, içeriğin mantıksal yapısını vurgular. Bu, içeriğin düzenlenmesini ve stilendirilmesini kolaylaştırır. Örneğin, bir
    Kod:
    <aside>
    etiketi genellikle ana içerikle ilgili ancak ayrı bir bilgi bölümünü işaret eder.
  • Daha İyi Tarayıcı Anlaması: Tarayıcılar, semantik etiketleri kullanarak içeriği daha iyi işleyebilir ve sunabilir. Bu, performansı artırabilir ve gelecekteki web teknolojileri için daha iyi bir temel oluşturabilir.
Bazı Yaygın Semantik HTML Etiketleri ve Kullanım Alanları:
  • Kod:
    <article>
    : Bağımsız ve kendi içinde anlamlı bir içeriği temsil eder (örneğin, bir blog gönderisi, bir haber makalesi).
  • Kod:
    <aside>
    : Ana içerikle dolaylı olarak ilişkili ancak ayrı bir içeriği temsil eder (örneğin, kenar çubuğu, alıntılar).
  • Kod:
    <nav>
    : Gezinme bağlantılarını içeren bir bölümü temsil eder (örneğin, menüler).
  • Kod:
    <header>
    : Bir bölümün veya tüm sayfanın tanıtım içeriğini temsil eder (örneğin, başlık, logo).
  • Kod:
    <footer>
    : Bir bölümün veya tüm sayfanın alt bilgisini temsil eder (örneğin, telif hakkı bilgileri, iletişim bilgileri).
  • Kod:
    <main>
    : Belgenin ana içeriğini temsil eder.
  • Kod:
    <section>
    : Tematik olarak gruplandırılmış içeriğin bir bölümünü temsil eder.
  • Kod:
    <figure>
    ve
    Kod:
    <figcaption>
    : Resimler, grafikler vb. gibi bağımsız medyaları ve bunların başlıklarını temsil eder.
  • Kod:
    <mark>
    : Metin içinde vurgulanması gereken bir bölümü işaretler.
  • Kod:
    <time>
    : Tarih ve/veya saat bilgisini temsil eder.
Örnek:
Semantik olmayan HTML:
HTML

Kod:
<div id="header">
  <div class="logo">Web Sitem</div>
  <div class="navigation">
    <ul>
      <li><a href="#">Anasayfa</a></li>
      <li><a href="#">Hakkımızda</a></li>
      <li><a href="#">İletişim</a></li>
    </ul>
  </div>
</div>
<div id="main">
  <div class="article">
    <h1>Makale Başlığı</h1>
    <p>Makale içeriği...</p>
  </div>
  <div class="sidebar">
    <h3>İlgili Bağlantılar</h3>
    <ul>
      <li><a href="#">Bağlantı 1</a></li>
      <li><a href="#">Bağlantı 2</a></li>
    </ul>
  </div>
</div>
<div id="footer">
  <p>© 2023 Tüm Hakları Saklıdır.</p>
</div>
Semantik HTML:
HTML

Kod:
<header>
  <div class="logo">Web Sitem</div>
  <nav>
    <ul>
      <li><a href="#">Anasayfa</a></li>
      <li><a href="#">Hakkımızda</a></li>
      <li><a href="#">İletişim</a></li>
    </ul>
  </nav>
</header>
<main>
  <article>
    <h1>Makale Başlığı</h1>
    <p>Makale içeriği...</p>
  </article>
  <aside>
    <h3>İlgili Bağlantılar</h3>
    <ul>
      <li><a href="#">Bağlantı 1</a></li>
      <li><a href="#">Bağlantı 2</a></li>
    </ul>
  </aside>
</main>
<footer>
  <p>© 2023 Tüm Hakları Saklıdır.</p>
</footer>
Bu örnekte görüldüğü gibi, semantik etiketler kullanılarak içeriğin farklı bölümleri (başlık, gezinme, ana içerik, kenar çubuğu, alt bilgi) daha anlamlı bir şekilde işaretlenmiştir. Bu, hem geliştiricilerin hem de tarayıcıların içeriği daha iyi anlamasına yardımcı olur.
Semantik HTML, modern web geliştirmenin önemli bir parçasıdır ve daha erişilebilir, SEO dostu ve bakımı kolay web siteleri oluşturmak için temel bir prensiptir.
Yorum Yorum Yok
Yazar: admin
Semantik HTML Kullanmaktan Çekinme
  • Kod:
    <div>
    her derde deva ama her iş için değil.
  • Kod:
    <header>
    ,
    Kod:
    <nav>
    ,
    Kod:
    <section>
    ,
    Kod:
    <article>
    ,
    Kod:
    <footer>
    gibi etiketlerle sayfanın anlamını artır.
? Bu, SEO ve erişilebilirlik için büyük artı puan!

Semantik HTML Nedir diyenler için Alt Konularda Açıklayıcı bir Yazımız var. Lütfen Takip Edin.
Yorum Yorum Yok
Yazar: admin
Doğru Etiket, Doğru İş!
HTML’de hangi etiketi ne için kullanman gerektiğini iyi bilmek, yapıyı güçlü ve anlamlı yapar.
Örneğin:
  • Kod:
    <strong>
    kalın yazı ve arama motorları için “önemli” anlamına gelir.
  • Kod:
    <b>
    sadece görsel olarak kalın yapar.
  • Kod:
    <em>
    vurgulu yazı için idealdir; screen reader’lar da bunu anlar.
? Kısacası, sadece göze değil, yapıya da kod yaz.
Yorum Yorum Yok
Yazar: Gets
Soru:
Bir dizide (liste) sadece bir eleman farklı sayıda tekrar ediyordur, diğer tüm elemanlar ikişer kez tekrar ediyordur. Bu tek kalan elemanı bulan bir fonksiyon yaz.

Örnek:
python

Kod:
input: [4, 1, 2, 1, 2]
output: 4
Kurallar:
  • Zaman karmaşıklığı O(n) olmalı.
  • Ekstra bir liste veya sözlük kullanmadan çözmeye çalış.

Bu soruyu ekstra bellek kullanmadan ve O(n) zamanda çözmenin en güzel yolu XOR operatörünü kullanmaktır.

Neden XOR?

a ^ a = 0 (aynı sayılar birbirini götürür)

a ^ 0 = a

XOR işlemi değişmeli ve birleşmelidir.

Yani bir dizideki tüm sayıları sırayla XOR'ladığımızda, çift olanlar birbirini sıfırlar ve sadece tek kalan sayı sonuç olarak elde kalır.

Python çözümü:

def single_number(nums):
    result = 0
    for num in nums:
        result ^= num
    return result

# Örnek
print(single_number([4, 1, 2, 1, 2]))
Yorum Yorum Yok

Hoşgeldin, Ziyaretçi

Sitemizden yararlanabilmek için kayıt olmalısınız.

Forumda Ara

Forum İstatistikleri

Toplam Üyeler 5
Son Üye Birpay
Toplam Konular 28
Toplam Yorumlar 30

Kimler Çevrimiçi

Şu anda 14 aktif kullanıcı var. Bing
(0 Üye - 13 Ziyaretçi)

Son Yazılanlar

SQL Injection ve Çözümü

Son Yorum: Birpay 05-03-2025, 07:06 PM

Merhaba

Son Yorum: admin 05-02-2025, 07:12 PM

Android UI Performansı

Son Yorum: KodX 04-27-2025, 04:46 PM

Kotlin Spesifik Optimizas...

Son Yorum: admin 04-27-2025, 04:42 PM

Android Verimli Kod Yazma

Son Yorum: KodX 04-27-2025, 02:15 PM

Merhaba Yeni Kod Dostları...

Son Yorum: KodX 04-27-2025, 11:55 AM

JavaScript'in Temel Kulla...

Son Yorum: admin 04-23-2025, 05:52 PM

JavaScript nedir

Son Yorum: admin 04-23-2025, 05:50 PM

CSS Nedir Tanımı

Son Yorum: KodlarTR 04-23-2025, 05:45 PM

Müşteri Hizmetleri Chatbo...

Son Yorum: admin 04-23-2025, 05:35 PM