function validateTc($tc) {
$tc = (string)$tc;
// 11 hane olmalı, sadece rakam içermeli ve ilk rakamı 0 olmamalı
if (strlen($tc) !== 11 || !ctype_digit($tc) || $tc[0] === '0') {
return false;
}
$sumOdds = $tc[0] + $tc[2] + $tc[4] + $tc[6] + $tc[8]; // 1, 3, 5, 7, 9. haneler (indis: 0, 2, 4, 6, 8)
$sumEvens = $tc[1] + $tc[3] + $tc[5] + $tc[7]; // 2, 4, 6, 8. haneler (indis: 1, 3, 5, 7)
// 10. Hane kontrolü
$digit10 = (($sumOdds * 7) + ($sumEvens * 9)) % 10;
if ((int)$tc[9] !== $digit10) {
return false;
}
// 11. Hane kontrolü
$sumFirst10 = 0;
for ($i = 0; $i < 10; $i++) {
$sumFirst10 += (int)$tc[$i];
}
$digit11 = $sumFirst10 % 10;
if ((int)$tc[10] !== $digit11) {
return false;
}
return true;
}def validate_tc(tc):
tc = str(tc)
# 11 hane olmalı, sadece rakam içermeli ve ilk rakamı 0 olmamalı
if len(tc) != 11 or not tc.isdigit() or tc[0] == '0':
return False
digits = [int(d) for d in tc]
sum_odds = sum(digits[0:9:2]) # 1, 3, 5, 7 ve 9. hanelerin toplamı (indisler: 0, 2, 4, 6, 8)
sum_evens = sum(digits[1:8:2]) # 2, 4, 6 ve 8. hanelerin toplamı (indisler: 1, 3, 5, 7)
# 10. Hane kontrolü
digit_10 = ((sum_odds * 7) + (sum_evens * 9)) % 10
if digits[9] != digit_10:
return False
# 11. Hane kontrolü
digit_11 = sum(digits[:10]) % 10
if digits[10] != digit_11:
return False
return True function validateTc(tc) {
tc = String(tc);
// 11 hane olmalı, sadece rakam içermeli ve ilk rakamı 0 olmamalı
if (!/^[1-9][0-9]{10}$/.test(tc)) {
return false;
}
const digits = tc.split('').map(Number);
const sumOdds = digits[0] + digits[2] + digits[4] + digits[6] + digits[8]; // 1, 3, 5, 7, 9. haneler
const sumEvens = digits[1] + digits[3] + digits[5] + digits[7]; // 2, 4, 6, 8. haneler
// 10. Hane kontrolü
const digit10 = ((sumOdds * 7) + (sumEvens * 9)) % 10;
if (digits[9] !== digit10) {
return false;
}
// 11. Hane kontrolü
const digit11 = digits.slice(0, 10).reduce((acc, val) => acc + val, 0) % 10;
if (digits[10] !== digit11) {
return false;
}
return true;
}bu kodlar yukarıdaki arkadaşın söylediği algoritmaya uygun şekilde hazırlanmıştı hocam değerlendiebilirsiniz.