Son Dakika Haberlerini Takip Edebileceğiniz FrmTR Haber Yayında.
Forum TR
Go Back   Forum TR > Programlama Dilleri Yazılım Teknolojileri ve Algoritmalar > Programlama > c ve c++
FrmTR'ye Reklam Vermek İçin: [email protected]

sayıların alfabetik okunuşu..!!! Yardım lutfen...

Programlama Kategorisinde ve c ve c++ Forumunda Bulunan sayıların alfabetik okunuşu..!!! Yardım lutfen... Konusunu Görüntülemektesiniz => Arkadşlar proje olarak [-9999 ile +9999] arasında yazdığım sayıları okuyan bi program yapmam gerekiyor.. bazı şeyler kafamda şekillendi nasıl okutucam ...

Cevapla
 
Konu Araçları
Eski 23-10-08, 15:05   #1

Exclamation sayıların alfabetik okunuşu..!!! Yardım lutfen...


Arkadşlar proje olarak [-9999 ile +9999] arasında yazdığım sayıları okuyan bi program yapmam gerekiyor.. bazı şeyler kafamda şekillendi nasıl okutucam flan ama buradaki if/else kalıbını mantksal ölçüde kullanamıyorum..

örnek :
245
ikiyuzkirkbes

1001
binbir

-4056
eksidortbinellialti

bu turden bi program olması gerekiyor.. gerçekten yardıma ihtiyacım var.. yardım edicek olan tüm arkadşlara şimdiden teşekkürler...


daha 2. haftada böyle program yazmak zor geldi 1. sınıfta ..
  Alıntı Yaparak Cevapla
Eski 23-10-08, 20:58   #2

Varsayılan C: sayıların alfabetik okunuşu..!!! Yardım lutfen...


karaladım bişeyler hemen. henüz denemedim ama ufak tefek bir hata yoksa çalışır gibime geliyor.
Kod:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

char* rakam(int i){
  char* res;
  switch(i){
    case 0:
	  strcpy(res,"");
	case 1:
	  strcpy(res,"bir");
	case 2:
	  strcpy(res,"iki");
	case 3:
	  strcpy(res,"uc");
	case 4:
	  strcpy(res,"dort");
	case 5:
	  strcpy(res,"bes");
	case 6:
	  strcpy(res,"alti");
	case 7:
	  strcpy(res,"yedi");
	case 8:
	  strcpy(res,"sekiz");
	case 9:
	  strcpy(res,"dokuz");
  }
  return res;
}

char* eksi(int i){
  char* res;
  if(i<0) strcpy(res,"eksi");
  else strcpy(res,"");
  return res;
}

char* birler(int i){
  int b = i%10;
  return rakam(i);
}

char* onlar(int i){
  int b = (i%100)/10;
  if(b==0) return "";
  char* res;
  switch(i){
    case 0:
	  strcpy(res,"");
	case 1:
	  strcpy(res,"on");
	case 2:
	  strcpy(res,"yirmi");
	case 3:
	  strcpy(res,"otuz");
	case 4:
	  strcpy(res,"kirk");
	case 5:
	  strcpy(res,"elli");
	case 6:
	  strcpy(res,"altmis");
	case 7:
	  strcpy(res,"yetmis");
	case 8:
	  strcpy(res,"seksen");
	case 9:
	  strcpy(res,"doksan");
  }
  return res;
}

char* yuzler(int i){
  int b = (i%1000)/100;
  if(b==0) return "";
  char *res;
  if(b==1)
    strcpy(res,"");
  else
    strcpy(res,rakam(b));
  strcat(res,"yuz");
  return res;
}

char* binler(int i){
  int b = (i%10000)/1000;
  if(b==0) return "";
  char *res;
  if(b==1)
    strcpy(res,"");
  else
    strcpy(res,rakam(b));
  strcat(res,"bin");
  return res;
}

main(){
  int in; scanf("%d",&in);
  if(abs(in)>9999){
    printf("olmadi!!\n");
	system("pause");
	return;
  }
  char* sonuc;
  strcpy(sonuc,"");
  strcat(sonuc,eksi(in));
  strcat(sonuc,binler(in));
  strcat(sonuc,yuzler(in));
  strcat(sonuc,onlar(in));
  strcat(sonuc,birler(in));
  printf("%s\n",sonuc);
  system("pause");
}
  Alıntı Yaparak Cevapla
Eski 23-10-08, 22:12   #3

Varsayılan C: sayıların alfabetik okunuşu..!!! Yardım lutfen...


1. sınıfta yaptığım programı değiştirmeden gönderiyorum. Açıklama satırlarını ödev olduğu için yazmıştım. aaaaaaaaah 1. sınıf ah. Nostalji oldu şimdi.
Neyse, programın bundan sonrasını geliştirmek sana kalmış.
Acemiliğimde yazmıştım programı, o nedenle büyük ihtimalle anlaşılırdır, yine anlamadığın yerleri açıklarım. 0'dan küçük sayıları da başta bir kontrol vererek(if sayi<0 printf("eksi"); sayi=sayi*(-1); )

geri kalan işlemleri yine yaptırırsın.

Alıntı:
/*bu program 0-999 sayıları arasında(dahil) rakamla verilen tamsayı değerlerini yazıya
çevirip ekrana yazar.Bu aralık dışında verilen değerlerde kullanıcıyı uyarır ve program kapanır*/
#include<stdio.h>
#include<conio.h>
int main()
{
int a,a1,b,b1,c,sayi;

printf("bu program furkan ******(207*****-BME) tarafindan\n 23 Ekim 2007 tarihinde yapilmistir\n");
printf("bir tamsayi giriniz(0-999)");
scanf("%d",&sayi);
if(sayi<=999&&sayi>=0){
if(sayi==0)
printf("sifir");
a=sayi%10;/*birler basamağı değeri*/
b=sayi%100;/*onlar basamağı değeri*/
c=sayi/100;/*yüzler basamağı değeri*/
if(b<100&&b>=90)
b1=90;
if(b<90&&b>=80)
b1=80;
if(b<80&&b>=70)
b1=70;
if(b<70&&b>=60)
b1=60;
if(b<60&&b>=50)
b1=50;
if(b<50&&b>=40)
b1=40;
if(b<40&&b>=30)
b1=30;
if(b<30&&b>=20)
b1=20;
if(b<20&&b>=10)
b1=10;
if(b<10)
b1=0;
switch (c){
case 1rintf("yuz ");
break;
case 2rintf("iki yuz ");
break;
case 3rintf("uc yuz ");
break;
case 4rintf("dort yuz ");
break;
case 5rintf("bes yuz ");
break;
case 6rintf("alti yuz ");
break;
case 7rintf("yedi yuz ");
break;
case 8rintf("sekiz yuz ");
break;
case 9rintf("dokuz yuz ");
break;
default:;
}



switch (b1){
case 90: printf("doksan ");
break;
case 80: printf("seksen ");
break;
case 70: printf("yetmis ");
break;
case 60: printf("altmis ");
break;
case 50: printf("elli ");
break;
case 40: printf("kirk ");
break;
case 30: printf("otuz ");
break;
case 20: printf("yirmi ");
break;
case 10: printf("on ");
break;
default:;
}
switch (a){
case 0: printf("");
break;
case 1: printf("bir ");
break;
case 2: printf("iki ");
break;
case 3: printf("uc ");
break;
case 4: printf("dort ");
break;
case 5: printf("bes ");
break;
case 6: printf("alti ");
break;
case 7: printf("yedi ");
break;
case 8: printf("sekiz ");
break;
case 9: printf("dokuz ");
}







}
else printf("yanlis aralikta sayi girdiniz");
getch ();
return 0;
}
  Alıntı Yaparak Cevapla
Eski 24-10-08, 10:37   #4

Varsayılan C: sayıların alfabetik okunuşu..!!! Yardım lutfen...


çok çok çok teşekkürler..
  Alıntı Yaparak Cevapla
Eski 24-10-08, 19:02   #5

Varsayılan C: sayıların alfabetik okunuşu..!!! Yardım lutfen...

case kullanamıcaksınız die not düşmüş projede.. if ile yapıcam... cok açıklayıcı oldu bu tekrar tekrar saoL...
  Alıntı Yaparak Cevapla
Cevapla

Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz

Konu Araçları

Gönderme Kuralları
Yeni konu açamazsınız
Cevap yazamazsınız
Dosya gönderemezsiniz
Mesajlarınızı düzenleyemezsiniz

BB code is Açık
Smiley Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı



5651 sayılı yasaya göre forumumuzdaki mesajlardan doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Şikayet Mailimiz. İçerik, Yer Sağlayıcı Bilgilerimiz. Reklam Mailimiz. Gizlilik Politikası


Reklamı Kapat

Reklamı Kapat