lostyazilim
tr.link

Her satırın ne işe yaradığını açıklama satırı ile yazmam gerekiyor

6 Mesajlar 1.440 Okunma
lstbozum
tr.link

neo neo Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 27.12.2011
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 28
  • Beğeniler 12 / 1
  • Ticaret 2, (%50)
Arkadaşlar elimde böyle bir kod var.Bu kod girilen sayıyı basamaklarına ayırıyor.İnternetten buldum ben bunu.Kodda sorun yok çalışıyor fakat her satırın ne işe yaradığını açıklama satırı ile yazmam gerekiyor.Bu konuda bana yardımcı olabilecek var mı ?
#include
#include
#include
int main()
{
int birler,onlar,yuzler,binler,onbinler,yuzbinler,sayi;
printf("Bir sayi giriniz:");
scanf("%d",&sayi);
while(sayi!=0)
{
if(sayi>10000 && sayi<3853000)
{
yuzbinler=sayi/100000;
onbinler=(sayi/10000)%10;
binler=(sayi/1000)%10;
yuzler=(sayi/100)%10;
onlar=(sayi/10)%10;
birler=sayi%10;
printf("%d*100000 + ",yuzbinler);printf("%d*10000 + ",onbinler);printf("%d*1000 + ",binler);printf("%d*100 + ",yuzler);printf("%d*10 + ",onlar);printf("%d*1",birler);
}
else printf("yanlis deger");
break;
}
getch();
}
 

 

wmaraci
reklam

cetinn cetinn WM Aracı Kullanıcı
  • Üyelik 25.07.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Muhabir,Muhasebeci,Fotoğrafçı,
  • Konum Ağrı
  • Ad Soyad Ç** Ç**
  • Mesajlar 219
  • Beğeniler 53 / 54
  • Ticaret 12, (%100)
Bir c# olarak cevapladım :( umarım doğrudur ve işini görür

#include
#include
#include
int main()
{
int birler,onlar,yuzler,binler,onbinler,yuzbinler,sayi;
printf("bir sayi giriniz:");
scanf("%d",&sayi); //ekrana girilen sayı
while(sayi!=0) //sayı sıfır a eşit değilse
{
if(sayi>10000 && sayi<3853000) //sayı 10000 veya 3853000 arasında ise aşağıdaki işlemleri yap
{
yuzbinler=sayi/100000; sayının basamağını bölerek buluyor
onbinler=(sayi/10000)%10; sayının basamağını bölerek buluyor
binler=(sayi/1000)%10; sayının basamağını bölerek buluyor
yuzler=(sayi/100)%10; sayının basamağını bölerek buluyor
onlar=(sayi/10)%10; sayının basamağını bölerek buluyor
birler=sayi%10; sayının basamağını bölerek buluyor

printf("%d*100000 + ",yuzbinler);printf("%d*10000 + ",onbinler);printf("%d*1000 + ",binler);printf("%d*100 + ",yuzler);printf("%d*10 + ",onlar);printf("%d*1",birler); bamakları bulmak için bir kaç ufak işlem umarım bunu biliyorsundur. Kolay
}
else printf("yanlis deger"); sayı 0(sıfır) ise bunu yapıyor
break; sanıtım bitir döngüden çık anlamına geliyor
}
getch(); bunu bilmiyorum 
}
 

 

trgy trgy Mühendis Kullanıcı
  • Üyelik 22.12.2010
  • Yaş/Cinsiyet 34 / E
  • Meslek Mühendis
  • Konum Macaristan
  • Ad Soyad T** Y**
  • Mesajlar 390
  • Beğeniler 32 / 209
  • Ticaret 16, (%100)
c++ degil bu c. yukaridaki arkadas yanlis yazmis aciklamalari ayrica.


#include
#include
#include
int main()
{
int birler,onlar,yuzler,binler,onbinler,yuzbinler,sayi; //integer olusturduk
printf("Bir sayi giriniz:"); //ekrana bir sayi giriniz yazdirdik
scanf("%d",&sayi); //kullanicidan bir deger almak ve bu degerin girilip girilmedigini kontrol etmek icin scanf kullandik.
while(sayi!=0) //kullanicidan girilen deger 0 degilse while dongusunu isleme aldirdik.
{
if(sayi>10000 && sayi<3853000) // sayi 10 00 ile 3853000 arasindaysa if kosulunun icerisindeki islemleri gerceklestirdik.
{
yuzbinler=sayi/100000; //yuzbinler degiskenine sayi/100000 degerini atadik.
onbinler=(sayi/10000)%10; //onbinler degiskenine (sayi/10000) in mod 10 degerinini atadik.
binler=(sayi/1000)%10; //binler degiskenine (sayi/1000) in mod 10 degerinini atadik.
yuzler=(sayi/100)%10; //yuzler degiskenine (sayi/100) un mod 10 degerinini atadik.
onlar=(sayi/10)%10; //onlar degiskenine (sayi/10) un mod 10 degerinini atadik.
birler=sayi%10; //birler degiskenine sayi degiskeninin mod 10 degerinini atadik.
printf ("%d*100000 + ",yuzbinler); // yuzbinler degiskenini 100 000 ile carptik ve ekrana yazdirdik.
printf("%d*10000 + ",onbinler); // onbinler degiskenini 10000 ile carptik ve ekrana yazdirdik.
printf("%d*1000 + ",binler); // binler degiskenini 1000 ile carptik ve ekrana yazdirdik.
printf("%d*100 + ",yuzler); // yuzler degiskenini 100 ile carptik ve ekrana yazdirdik.
printf("%d*10 + ",onlar); // onlar degiskenini 10 ile carptik ve ekrana yazdirdik.
printf("%d*1",birler); // birler degiskenini 1 ile carptik ve ekrana yazdirdik.
}
else printf("yanlis deger"); // sayi 10 00 ile 3853000 arasinda degilse ekrana yanlis deger yazdirdik.
}
getch(); // bu fonksiyonu ise ekranda programin sabit kalmasi icin kullaniriz. yani bu getch() fonksiyonunu kaldirdiginda program calisir ama saliseler icerisinde ekrandan kaybolur ve ekranda programin calistigini goremezsin.
}



Programda ek ozellik istiyorsan sorabilirsin yapabilirim. Benden sana oneri;

C programlama dersini iyi ogren programlamanin temelidir ve herseyi sana ogretir. En ufak bir hatada bile can sikabilir ama diger programlama dillerini ogrenmeye basladiginda bunlar ne kadar kolaymis dedirtir.
Ertug

kişi bu mesajı beğendi.

neo neo Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 27.12.2011
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 28
  • Beğeniler 12 / 1
  • Ticaret 2, (%50)
Arkadaşlar hepinize çok çok teşekkür ederim
 

 

wmaraci
wmaraci

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
getch(); bunu bilmiyorum

Burada konsolda printf ile yazdırılan outputları görmek için kullanılmış. Derleyici işlemleri yaptıktan sonra getch(); fonksiyonu ile ekrana bir karakter girilmesini bekler girildiğinde programa devam eder burada ise konsol'u kapatır.

%10 ile mod alıyor lakin int değerlerde %10 mod'u niye alınır zaten 10'luk sistemde işlem yapıyor.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

kilitbilgi kilitbilgi kilitbilgi@gmail.com Kullanıcı
  • Üyelik 13.06.2012
  • Yaş/Cinsiyet 31 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İzmir
  • Ad Soyad B** Ç**
  • Mesajlar 396
  • Beğeniler 82 / 125
  • Ticaret 3, (%100)

#include//Cout ve cin gibi metodların tutulduğu header file
#include//system("pause") metodunun tutulduğu header file

using namespace std;

int main()
{
int birler,onlar,yuzler,binler,onbinler,yuzbinler,sayi; //integer olusturduk
cout <<"Bir sayi giriniz:"; //ekrana bir sayi giriniz yazdirdik
cin >> sayi; //kullanicidan bir deger almak ve bu degerin girilip girilmedigini kontrol etmek icin cin kullandik.
if(sayi>10000 && sayi<3853000) // sayi 10000 ile 3853000 arasindaysa if kosulunun icerisindeki islemleri gerceklestirdik.
{
yuzbinler=sayi/100000; //yuzbinler degiskenine sayi/100000 degerini atadik.
onbinler=(sayi/10000)%10; //onbinler degiskenine (sayi/10000) in mod 10 degerinini atadik.
binler=(sayi/1000)%10; //binler degiskenine (sayi/1000) in mod 10 degerinini atadik.
yuzler=(sayi/100)%10; //yuzler degiskenine (sayi/100) un mod 10 degerinini atadik.
onlar=(sayi/10)%10; //onlar degiskenine (sayi/10) un mod 10 degerinini atadik.
birler=sayi%10; //birler degiskenine sayi degiskeninin mod 10 degerinini atadik.
cout << yuzbinler << "*100000 + "; // yuzbinler degiskenini 100 000 ile carptik ve ekrana yazdirdik.
cout << onbinler << "*10000 + " ; // onbinler degiskenini 10000 ile carptik ve ekrana yazdirdik.
cout << binler << "*1000 + " ; // binler degiskenini 1000 ile carptik ve ekrana yazdirdik.
cout << yuzler << "*100 + " ; // yuzler degiskenini 100 ile carptik ve ekrana yazdirdik.
cout << onlar << "*10 + " ; // onlar degiskenini 10 ile carptik ve ekrana yazdirdik.
cout << birler << "*1" ; // birler degiskenini 1 ile carptik ve ekrana yazdirdik.
}
else
cout << "yanlis deger"; // sayi 10 00 ile 3853000 arasinda degilse ekrana yanlis deger yazdirdik.

cout << "\n";
system("pause"); // bu fonksiyonu ise ekranda programin sabit kalmasi icin kullaniriz. yani bu system("pause") fonksiyonunu kaldirdiginda program calisir ama saliseler icerisinde ekrandan kaybolur ve ekranda programin calistigini goremezsin.
return 0;//Programdan basariyla cikildi
}

@trgy nin verdiği koda ufak eklemeler ve bir düzeltme yaptım.
İyi çalışmalar.
neo

kişi bu mesajı beğendi.

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al