[]

C'den anlayan coderlar

Finale 15 puan ek olacak bir sorunum var canlar.
Şimdi ben çan eğrisi programı yazacağım da, hatasız olması gerekiyor.
Örneğin, Ad soyad kısmını kullanıcıdan istediğimde bana geçersiz karakter girdiğinde yanlış girdiğini ona söylemem gerek. Haliyle bu numarada da geçerli olacak.
Bunu nasıl yapacağım. Düşünüyorum düşünüyorum yok bulamıyorum.
Yardım edin mutlu edin öğrenciyi.

tenk yu.

 
girilen stringi karakter karakter kontrol et.


  • kim milton nielsen  (30.12.11 23:16:57) 
nası yani ?


  • baris daima  (30.12.11 23:19:55) 
şimdi hatalı olacak karakterler belli. o karakter grubuyla, girilen isim/soyisim, numara grubunu karşılaştırıcaksın. bunu yaparken de girilen bilgiyi karakter karakter kontrol etmen lazım, yolu o.


  • kim milton nielsen  (30.12.11 23:21:51) 
şimdi adamdan ad soyad girmesini istedik ama ağamız bize slso9s82ædld gibisinden bir şey yazdı. bunu ASCII kodlarıyla tek tek kontrol et mi demek istedin patron ?


  • baris daima  (30.12.11 23:24:08) 
hayır. şimdi bu girdiği karakter dizisi değil mi? evet, öyle. o zaman 0. elemandan uzunluğu-1.elemana kadar giden bir döngüde 0.eleman ile istenmeyen karakter 1.eleman ile istenmeyen karakter n.eleman ile istenmeyen karakter .... şeklinde karşılaştırman gerekir.


  • kim milton nielsen  (30.12.11 23:27:43 ~ 23:28:07) 
şu işi regex kullanmadan tam yapmak çok uzun olmaz mı? geçersiz karakterler bir yana işin içine boşluk girdi mi karışır iyice.

hocanın hatasızdan kastı ne ola ki?

ekleme: tek tek kontrol etme işleminde numara için konuşuyorum dizi[i]!=9veya8veya... şeklinde döngüye sokabilirsin.
  • nickini vermek istemeyen uye  (30.12.11 23:28:37 ~ 23:30:38) 
@kim milton nielsen, istenmeyen karakter gibi bir durum yok ortada. ben tam izah edemedim. ad soyad girilmesi istendiğinde örneğin rakam tuşladığında bunun hatalı olduğunu, aynı şekilde öğrencinin numarasını girilirken &%+sjs gibi bir şey yazdığında bu yanlış doğru gir diyecek bir şeyi nasıl yazabilirim onu demek istemiştim.
@ nickini vermek istemeyen uye, kim milton'a söylerken aslında hocanın hatasızdan kastını anlatmaya çalıştım. adam diyor ki, siz her türlü çan programını yazarsınız ben sizden ayrıntıları düşündünüz mü onu öğrenmek istiyorum diyor ve yukarıdaki yazdığım örneği veriyor.
kolay gibi görünen ama zor olan bir ödev bu maalesef.
  • baris daima  (30.12.11 23:33:55) 
@baris
e tamam o dediklerin istenmeyen olmuyor mu?

  • kim milton nielsen  (30.12.11 23:36:14) 
üstad istenmeyen oluyor da onların listesi çok uzundur, yaz yaz bitmeyebilir :)


  • baris daima  (30.12.11 23:39:15) 
isim için:
dadadssf geçerli
%daa geçersiz
klsjdmklnasmd23 geçersiz
kdlajkdka dkajdka geçerli
dlkajdkand dadad dadag gsfs geçersiz

bu durumlardan hangilerini kontrol etmek istiyorsun?
  • nickini vermek istemeyen uye  (30.12.11 23:41:36) 
yav 10 tane karakter rakamlar için, diğeri de 35-40 bişey sanırım. iki tane dizi yaparsın biri bi tanesi için biri bi tanesi. iki satır daha fazla değil.


  • kim milton nielsen  (30.12.11 23:41:58) 
isim için:
dadadssf geçerli
%daa geçersiz
klsjdmklnasmd23 geçersiz
kdlajkdka dkajdka geçerli
dlkajdkand dadad dadag gsfs geçersiz

sonucuya da geçerli diyebiliriz aslında. Sonuçta adamın 3 adı bir soyadı olabilir :)
evet bunları girdiğinde geçersiz diye belirttiklerinde uyarı verecek, kabul etmeyecek durum.
  • baris daima  (30.12.11 23:46:34) 
şöyle bir şey olabilir:
string isim;
string alfabe={a,b,c,d,e....)// alfabeyi tanımla;
scanf-isim;
while(isim[i])
{
if(isim[i]!=boşluk)
{
for(int j=0;j<29;j++)
{
if(isim[i]!=alfabe[j];
"hatalı giriş";
break;
}
}

}
  • nickini vermek istemeyen uye  (30.12.11 23:48:33) 
boşluk olma durumunu yazmadım.
kaç boşluğa izin var onu ayarlamak lazım. sonucta
dakd da da da a da d s s s s s s s s s s s s da girilebilir.
boşluğa izin versek
" n" şeklinde de girilebilir.
  • nickini vermek istemeyen uye  (30.12.11 23:51:50) 
dediklerini de ekledikten sonra ben kodunu toparlayayım ondan sonra sana göndereyim müsait anında bakıp geri dönüşü yaparsın üstad olabilir mi ? çok mu çok oluyorum ? :) (haddini aşmak istemeyen smiley)


  • baris daima  (30.12.11 23:54:06) 
hocam ben de öğrenciyim. sadece bir dönem C gördüm. (yardımcı olmak isterim tabi)
düşünme mantığımı buraya yazdım ki hata gören olursa ya da ekleme yapan çıkarsa daha yararlı olur.

--bir de c'de diziyi bölme işini nasıl yapıyorduk hatırlamıyorum. ama ilk başta girilen string i boşluklara göre parçalara ayırıp yeni bir diziye atarsak daha kolay olur. hem kelime sayısını tutmuş oluruz hem de hepsini aynı yolla alfabeyle karşılaştırırız.
  • nickini vermek istemeyen uye  (31.12.11 00:04:02 ~ 00:04:31) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.