0Pricing
JavaScript Academy · Ders

E1 — İfade Değerlendirici (1. kısım: + ve - LTR)

+ ve - işaretlerini soldan sağa işleyen küçük bir değerlendirici uygulayın. Rakamları ve işleçleri belirteçlere ayırın, boşlukları yok sayın ve basit korumalar ekleyin.

E1 — İfade Değerlendirici (1. kısım: + ve - LTR), CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 3 dersten oluşur.

Oluşturacağımız şey

Amaç: Yalnızca + ve - içeren küçük matematik metinlerini değerlendirin.

  • Sayıları ve işleçleri belirteçlere ayırın
  • Boşlukları yok sayın
  • Soldan sağa hesaplayın
  • Basit hata korumaları ekleyin
E1 — İfade Değerlendirici (1. kısım: + ve - LTR) — resim 1

Belirteçlere ayırma: sayılar ve işleçler

Belirteçlere ayırıcı, rakamlardan sayılar oluşturur ve [12, "+", 3, "-", 4] gibi bir dizi döndürür.

// Tokenize: split into numbers and operators; ignore spaces
function tokenize(expr) {
  if (typeof expr !== "string") return null;

  const tokens = [];
  let num = "";

  for (let i = 0; i < expr.length; i = i + 1) {
    const ch = expr[i];

    if (ch === " ") {
      // skip spaces
      continue;
    }

    if (ch >= "0" && ch <= "9") {
      // build number
      num = num + ch;
    } else if (ch === "+" || ch === "-") {
      // flush pending number
      if (num.length > 0) {
        tokens.push(Number(num));
        num = "";
      }
      tokens.push(ch);
    } else {
      // unsupported character
      return null;
    }
  }

  if (num.length > 0) tokens.push(Number(num));
  return tokens;
}

console.log("tokens:", tokenize("12 + 3 - 4"));
E1 — İfade Değerlendirici (1. kısım: + ve - LTR) — resim 2

LTR değerlendirmesi (+/-)

Soldan sağa hesaplayın. Henüz işlem önceliğini veya parantezleri ele almıyoruz.

// Evaluate tokens left-to-right for + and - only
function evalPlusMinus(tokens) {
  if (!Array.isArray(tokens) || tokens.length === 0) return null;

  // result starts with first number
  let acc = tokens[0];
  if (typeof acc !== "number") return null;

  // step through [op, num] pairs
  for (let i = 1; i < tokens.length; i = i + 2) {
    const op = tokens[i];
    const val = tokens[i + 1];

    if ((op !== "+" && op !== "-") || typeof val !== "number") {
      return null;
    }

    if (op === "+") acc = acc + val;
    else acc = acc - val;
  }

  return acc;
}

console.log("eval 10-3-2:", evalPlusMinus([10, "-", 3, "-", 2]));
E1 — İfade Değerlendirici (1. kısım: + ve - LTR) — resim 3

Güvenli sarmalayıcı

Yeni başlayanların kolayca anlayabileceği, bir değer ya da kısa bir hata metni döndüren güvenli bir sarmalayıcı oluşturun.

// Glue the pieces: from string to result
function evalExprSimple(expr) {
  const tokens = tokenize(expr);
  if (tokens === null) {
    return { ok: false, error: "Invalid character" };
  }
  const result = evalPlusMinus(tokens);
  if (typeof result !== "number") {
    return { ok: false, error: "Invalid sequence" };
  }
  return { ok: true, value: result };
}

console.log("12 + 3 - 4 =", evalExprSimple("12 + 3 - 4"));
console.log("bad char   =", evalExprSimple("2 + a"));
E1 — İfade Değerlendirici (1. kısım: + ve - LTR) — resim 4

Küçük durumları çalıştırın

Örnekleri küçük tutun. İlerleyen bölümlerde öncelik, parantezler ve tekli eksi işaretini ekleyeceğiz.

// A few quick checks
const cases = [
  "0-3",
  "7+5",
  "10-3-2",
  "2 + 2 + 2",
  "9 - 1 + 1"
];

for (const c of cases) {
  const r = evalExprSimple(c);
  console.log(c, "=>", r.ok ? r.value : r.error);
}

// Note: unary minus (like "-3+2") not handled yet
// This simple version expects a number first
E1 — İfade Değerlendirici (1. kısım: + ve - LTR) — resim 5

Yeni başlayanlara rehberlik

İpuçları:

  • Küçük bir kapsamla başlayın (yalnızca + ve -).
  • Hata fırlatmak yerine küçük hatalar döndürün.
  • Küçük yardımcı işlevler yazın (belirteçlere ayırma, değerlendirme).
  • Özellikleri adım adım ekleyin.
E1 — İfade Değerlendirici (1. kısım: + ve - LTR) — resim 6

LTR davranışı sınavı

Hızlı kontrol: Soldan sağa sonucu.

E1 — İfade Değerlendirici (1. kısım: + ve - LTR) — resim 7

Özet

Özet: Sayıları ve +/- işleçlerini belirteçlere ayırın, boşlukları yok sayın ve soldan sağa değerlendirin. Küçük hatalar döndürün. Sırada: işlem önceliği ve parantezler.

E1 — İfade Değerlendirici (1. kısım: + ve - LTR) — resim 8

Sıkça Sorulan Sorular

“E1 — İfade Değerlendirici (1. kısım: + ve - LTR)” dersi ücretsiz mi?

Evet — “E1 — İfade Değerlendirici (1. kısım: + ve - LTR)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 3 dersten oluşur.

“E1 — İfade Değerlendirici (1. kısım: + ve - LTR)” dersinde ne öğreneceğim?

+ ve - işaretlerini soldan sağa işleyen küçük bir değerlendirici uygulayın. Rakamları ve işleçleri belirteçlere ayırın, boşlukları yok sayın ve basit korumalar ekleyin. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.

“E1 — İfade Değerlendirici (1. kısım: + ve - LTR)” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. E1 — İfade Değerlendirici (1. kısım: + ve - LTR)
  2. E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar)
  3. E3 — Promise Havuzu/Kuyruğu (Eşzamansız Eşzamanlılık)
← JavaScript Academy Sayfasına Dön