Sayı yardımcıları
- C++ kursu
- Orta seviye
- Ders 21/116
- 6 dk
Sayı dönüşüm ve hesaplama fonksiyonlarını eklersin.
Sayı yardımcıları
Şimdi Helpers sınıfına bir sayı yardımcısı ekleyeceğiz: clamp. Bu metod bir değeri belirli bir aralıkta tutar. Değer alt sınırdan küçükse alt sınırı, üst sınırdan büyükse üst sınırı döndürür; aksi halde değerin kendisini verir.
Örnek: static int clamp(int value, int min, int max) { if (value < min) return min; if (value > max) return max; return value; }. Helpers::clamp(15, 0, 10) çağrısı 10 döndürür; çünkü 15, 10'dan büyüktür. clamp(-3, 0, 10) ise 0 döndürür. Bu metod oyun skorlarını, ekran koordinatlarını veya yüzde değerlerini sınırlamak için kullanışlıdır.
clamp kullanımı
clamp metodunu çağırmak da tıpkı capitalize gibidir: Helpers::clamp(15, 0, 10). Önceki derslerin çıktısının ardından yeni satırda sonucu yazdırırız. Böylece çıktı birikerek büyümeye devam eder.
Çıktı sırası: Hazır, Merhaba, 10. Her ders bir öncekinin çıktısını korur ve yenisini ekler. Bu, yardımcı kütüphanenin aşama aşama büyüdüğünü gösterir. clamp'in döndürdüğü int değeri std::cout ile doğrudan yazdırabilirsin; ek bir dönüşüme gerek yoktur.
Uygulama clamp metodunu ekle ve çağır
Önceki dersin çözümünü al (Helpers sınıfında capitalize metodu var). public: altına static int clamp(int value, int min, int max) metodunu ekle: gövdesi if (value < min) return min; if (value > max) return max; return value;. main içinde capitalize çağrısından sonra std::cout << std::endl << Helpers::clamp(15, 0, 10); ekle.
Başlangıç kodu
#include <iostream>
#include <string>
#include <cctype>
class Helpers {
public:
static std::string capitalize(std::string text) {
if (text.empty()) return text;
text[0] = std::toupper(text[0]);
return text;
}
};
int main() {
std::cout << "Hazır" << std::endl;
std::cout << Helpers::capitalize("merhaba");
// clamp metodunu ekle ve çağır
return 0;
}Örnek çözüm
#include <iostream>
#include <string>
#include <cctype>
class Helpers {
public:
static std::string capitalize(std::string text) {
if (text.empty()) return text;
text[0] = std::toupper(text[0]);
return text;
}
static int clamp(int value, int min, int max) {
if (value < min) return min;
if (value > max) return max;
return value;
}
};
int main() {
std::cout << "Hazır" << std::endl;
std::cout << Helpers::capitalize("merhaba") << std::endl;
std::cout << Helpers::clamp(15, 0, 10);
return 0;
}Beklenen çıktı
Hazır Merhaba 10
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 clamp gövdesini tamamla
if (value < min) return min; if (value > ____) return max; return value;
if (value < min) return min; if (value > max) return max; return value;
Açıklama: Değer üst sınırdan büyükse max döndürülür.
2 Helpers::clamp(15, 0, 10) sonucu nedir?
Helpers::clamp(15, 0, 10)- 15
- 0
- 10 Doğru cevap
- 5
Açıklama: 15, 10'dan büyük olduğu için 10 döndürülür.
3 Çağrıyı sonucuna eşle
| Kavram | Anlamı |
|---|---|
clamp(15, 0, 10) |
10 döner |
clamp(-3, 0, 10) |
0 döner |
clamp(5, 0, 10) |
5 döner |