İçeriğe geç

C# · 6/8

Mini proje: sepet toplamı

Veri, tekrar ve hesabı küçük bir sepet uygulamasında birleştirmek.

Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.

Bu sayfada · 9 başlık

Başlamadan önce

Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.

Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

C# · Mini proje: sepet toplamı — videolu atölye: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.

Videoyla adım adım izle

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Mini proje: sepet toplamı

Veri, tekrar ve hesabı küçük bir sepet uygulamasında birleştirmek.

Kavramı kur

Bu proje önceki derslerde ayrı öğrendiğin parçaları bir akışa dönüştürür. Girdimiz fiyatlar koleksiyonu, işlemimiz toplama ve indirim, çıktımız ödenecek tutardır. Kod yazmadan önce bu üç bölümü yazmak, hesap kuralı ile ekrana yazı yazdırmayı birbirinden ayırır. Sonuç değişkenini hazır bir sayıya eşitlemek yerine girdilerden hesaplat.

Neden böyle çalışıyor?

Fiyatları tek tek dolaşıp biriken toplama ekliyoruz. Döngü bittikten sonra indirimi bir kez uyguluyoruz. İndirimi her ürün içinde çıkarmak farklı bir kuraldır; bir sepet indirimi ile ürün başına indirimi karıştırma. Küçük bir test tablosuyla hangi kuralı uyguladığını gösterebilirsin.

Çalışma sırası

Boş sepet, sıfır indirim ve toplamdan büyük indirim gibi durumları ayrıca düşün. Bu dersteki örnek küçük tam sayı tutarlar içindir; gerçek ödeme yazılımı değildir. Para türü, yuvarlama, vergi ve girdi doğrulama kurallarını ürün gereksinimine göre açıkça tanımlamak gerekir. Önce doğru temel akışı kur, sonra kapsamı büyüt.

İkinci örnek · 1

fiyatlar veri grubunu taşır. Kodun tamamı yazılı derste bulunur.

Kod

using System;
using System.Collections.Generic;
class Program {
  static void Main() {
    int[] fiyatlar = { 20, 35, 15 };
    int toplam = 0;
    foreach (int fiyat in fiyatlar) { toplam += fiyat; }
    int indirim = 10;
    Console.WriteLine($"Ödenecek: {toplam - indirim}");
  }
}

Beklenen sonucu oku

10 birim indirim sonradan tek kez çıkarılır; sonuç 60 olur.

Beklenen çıktı: Ödenecek: 60

Bir değeri sen değiştir

Ürün fiyatlarını değiştir ve toplamı elde kontrol et. İndirimi 0 yap; sonucun ham toplamla aynı olduğunu doğrula.

Hata nereden gelir?

İndirimi döngü içinde uygulamak her turda tekrar indirim yapar; iş kuralı sepet indirimi ise dışarı taşı.

Kendi çözümünü kur

Boş sepet ve toplamdan büyük indirim için nasıl davranılacağını yaz; bu kuralları koduna bir koşulla ekle. Önce üç ara toplamı yazdır; doğru birikim varsa indirimi döngü dışına koy.

Çözüm varyasyonu · 1

Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.

Kod

using System;
using System.Collections.Generic;
class Program {
  static void Main() {
    int[] fiyatlar = { 20, 35, 15 };
    int toplam = 0;
    foreach (int fiyat in fiyatlar) { toplam += fiyat; }
    int indirim = 100;
    Console.WriteLine($"Ödenecek: {Math.Max(0, toplam - indirim)}");
  }
}

Kendini kontrol et

Sepetin tamamına bir kez uygulanan indirim döngünün neresinde olmalıdır? Yanıt: Ürün toplamı hesaplandıktan sonra; döngü içinde her üründe tekrar uygulanmamalıdır.

Beklenen çıktı: Ödenecek: 0

Konu anlatımı

Bu proje önceki derslerde ayrı öğrendiğin parçaları bir akışa dönüştürür. Girdimiz fiyatlar koleksiyonu, işlemimiz toplama ve indirim, çıktımız ödenecek tutardır. Kod yazmadan önce bu üç bölümü yazmak, hesap kuralı ile ekrana yazı yazdırmayı birbirinden ayırır. Sonuç değişkenini hazır bir sayıya eşitlemek yerine girdilerden hesaplat.

Fiyatları tek tek dolaşıp biriken toplama ekliyoruz. Döngü bittikten sonra indirimi bir kez uyguluyoruz. İndirimi her ürün içinde çıkarmak farklı bir kuraldır; bir sepet indirimi ile ürün başına indirimi karıştırma. Küçük bir test tablosuyla hangi kuralı uyguladığını gösterebilirsin.

Boş sepet, sıfır indirim ve toplamdan büyük indirim gibi durumları ayrıca düşün. Bu dersteki örnek küçük tam sayı tutarlar içindir; gerçek ödeme yazılımı değildir. Para türü, yuvarlama, vergi ve girdi doğrulama kurallarını ürün gereksinimine göre açıkça tanımlamak gerekir. Önce doğru temel akışı kur, sonra kapsamı büyüt.

İlk örneği oku ve dene

6

Mini proje: sepet toplamı

Fiyatları bir diziye (int[]) koyuyoruz ve foreach döngüsüyle tek tek toplayıp sonucu yazıyoruz.

C#
int[] fiyatlar = { 45, 120, 30 };
int toplam = 0;

foreach (int fiyat in fiyatlar)
{
    toplam += fiyat;
}

Console.WriteLine($"Sepet toplamı: {toplam} TL");

▶ Sonuç

Sepet toplamı: 195 TL

Adım adım neden böyle çalışıyor?

  1. fiyatlar veri grubunu taşır.
  2. toplam döngü dışında 0 ile başlar.
  3. Her fiyat bir kez eklenir; ara toplamlar 20, 55 ve 70 olur.
  4. 10 birim indirim sonradan tek kez çıkarılır; sonuç 60 olur.
106

İkinci çözümlü örnek

Veri, tekrar ve hesabı küçük bir sepet uygulamasında birleştirmek.

C#
using System;
using System.Collections.Generic;
class Program {
  static void Main() {
    int[] fiyatlar = { 20, 35, 15 };
    int toplam = 0;
    foreach (int fiyat in fiyatlar) { toplam += fiyat; }
    int indirim = 10;
    Console.WriteLine($"Ödenecek: {toplam - indirim}");
  }
}

▶ Sonuç

Ödenecek: 60

Kolaydan zora sen dene

  1. Ürün fiyatlarını değiştir ve toplamı elde kontrol et.
  2. İndirimi 0 yap; sonucun ham toplamla aynı olduğunu doğrula.
  3. Boş sepet ve toplamdan büyük indirim için nasıl davranılacağını yaz; bu kuralları koduna bir koşulla ekle.
İpucunu aç

Önce üç ara toplamı yazdır; doğru birikim varsa indirimi döngü dışına koy.

Üç görevin açıklamalı çözümünü oku
  1. Yeni ürün değerlerini tek tek toplayıp kodun sonucuyla karşılaştır; örnekte 20+35+15=70.
  2. İndirim 0 iken ödenecek tutar 70 olur.
  3. Bu alıştırmanın seçilen kuralı tutarın 0 altına düşmemesidir: sonuç=max(0, toplam−indirim). Boş sepette toplam 0, büyük indirimde sonuç yine 0 olur.
Bir çözüm varyasyonu gör
206

Çözüm varyasyonu

Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.

C#
using System;
using System.Collections.Generic;
class Program {
  static void Main() {
    int[] fiyatlar = { 20, 35, 15 };
    int toplam = 0;
    foreach (int fiyat in fiyatlar) { toplam += fiyat; }
    int indirim = 100;
    Console.WriteLine($"Ödenecek: {Math.Max(0, toplam - indirim)}");
  }
}

▶ Sonuç

Ödenecek: 0

Yaygın hata ve çözümü

  1. İndirimi döngü içinde uygulamak her turda tekrar indirim yapar; iş kuralı sepet indirimi ise dışarı taşı.
  2. Gerçek para hesabında yalnızca bu örneğe güvenme; uygun hassasiyet, geçersiz girdi ve yuvarlama kuralları gerekir.

Kendini değerlendir

Toplam hesaplayan bir programı nasıl kontrol edersin?

Ezberlemeden açıklayabiliyor musun?

Sepetin tamamına bir kez uygulanan indirim döngünün neresinde olmalıdır?

Açıklamalı yanıt

Ürün toplamı hesaplandıktan sonra; döngü içinde her üründe tekrar uygulanmamalıdır.

Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.

Kaynak ve çalışma ortamı

Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.

Resmî dil belgeleri
Bu içerik işine yaradı mı?

Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.