Son İletiler

Sayfa: 1 ... 8 9 [10]
91
C Programlama Dili / Ynt: Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: zafer11 04 Ağu 2015, 11:22:27 Sal »
Kodda main kısmı yoktu sadece fonksiyonu yazmıştım. aşağıdaki haliyle derledim, çalışıyor.(Orwell Dev C++ da)
Kod: [Seç]
#include<stdio.h>

void bosluk (int sayi1);

int main( void )
{
int sayi;
scanf("%d", &sayi);

bosluk( sayi );
}


void bosluk ( int sayi1 )            //b birler basamağı...b2 onlar basamağı..b3 yüzler basamağı..b4 binler basamağı..b5 on binler basamağıdır.
{
int b;
int b2;
int b3;
int b4;
int b5;


b=sayi1%10;   //Birler basamağını bulmak için

if(sayi1!=b)    // eğer sayi bir basamaklıysa aşağıdaki işlemi yapmaması için if koşulunda eşitsizlik var.
b2=(sayi1%100-b)/10;
else
{
printf("%d\t", b);
return;//fonksiyondan çık, diğer if else lerin çalışmaması için, fonksiyonun dönüş değeri void olduğu için return ün yanında değer yok
}

if(sayi1!=10*b2+b)
b3=(sayi1%1000-10*b2-b)/100;
else
{
printf("%d\t%d\t",  b2, b);
return;//fonksiyondan çık
}
if(sayi1!=100*b3+10*b2+b)
b4=(sayi1%10000-100*b3-10*b2-b)/1000;
else
{
printf("%d\t%d\t%d\t", b3, b2, b);
return;//fonksiyondan çık
}

if(sayi1!=1000*b4+100*b3+10*b2+b)
b5=(sayi1-1000*b4-100*b3-10*b2-b)/10000;//burada 10000 e bölme eksikti
else
{
printf("%d\t%d\t%d\t%d\t",b4, b3, b2, b);
return;//fonksiyondan çık
}
//hiçbir return çalışmadıysa yani fonksiyondan çıkmadıysa bu satıra ulaşır, yani sayı 5 basamaklıdır.
printf("%d\t%d\t%d\t%d\t%d\t", b5, b4, b3, b2, b);
}
92
C Programlama Dili / Ynt: Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: okko 04 Ağu 2015, 01:49:56 Sal »
Teşekkür ederim fakat benim sorunum bu kodlarla hem 5 basamaklı bir sayıyı tersten yazdırmak hem de 5 basamaktan daha az bir sayıyı tersten yazdırmda. Kodlarda bir hata oluşuyor. Şu an kodu derleyemiyorum hata veriyor.
93
C Programlama Dili / Ynt: Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: zafer11 31 Tem 2015, 09:21:16 Cum »
Kod: [Seç]
void bosluk ( int sayi1 )            //b birler basamağı...b2 onlar basamağı..b3 yüzler basamağı..b4 binler basamağı..b5 on binler basamağıdır.
{
int b;
int b2;
int b3;
int b4;
int b5;


b=sayi1%10;   //Birler basamağını bulmak için

if(sayi1!=b)    // eğer sayi bir basamaklıysa aşağıdaki işlemi yapmaması için if koşulunda eşitsizlik var.
b2=(sayi1%100-b)/10;
else
{
printf("%d\t", b);
return;//fonksiyondan çık, diğer if else lerin çalışmaması için, fonksiyonun dönüş değeri void olduğu için return ün yanında değer yok
}

if(sayi1!=10*b2+b)
b3=(sayi1%1000-10*b2-b)/100;
else
{
printf("%d\t%d\t",  b2, b);
return;//fonksiyondan çık
}
if(sayi1!=100*b3+10*b2+b)
b4=(sayi1%10000-100*b3-10*b2-b)/1000;
else
{
printf("%d\t%d\t%d\t", b3, b2, b);
return;//fonksiyondan çık
}

if(sayi1!=1000*b4+100*b3+10*b2+b)
b5=(sayi1-1000*b4-100*b3-10*b2-b)/10000;//burada 10000 e bölme eksikti
else
{
printf("%d\t%d\t%d\t%d\t",b4, b3, b2, b);
return;//fonksiyondan çık
}
//hiçbir return çalışmadıysa yani fonksiyondan çıkmadıysa bu satıra ulaşır, yani sayı 5 basamaklıdır.
printf("%d\t%d\t%d\t%d\t%d\t", b5, b4, b3, b2, b);
}
aşağıdaki printf le de boşluklu yazdırılabilir:
printf("%5d%5d%5d%5d%5d", b5, b4, b3, b2, b);//%5d yazdırılacak sayı için 5 karakterlik alan ayırıyor. sayıyı sola dayalı yazdırıyor. örneğin 1 basamaklı sayı ise sağda 4 karakterlik alan boş kalıyor.
94
C Programlama Dili / Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: okko 30 Tem 2015, 22:49:26 Prş »
Merhabalar,
  Prgrama yazılan 1-5 basamak arasında(ve dahi) sayıların her bir basamağında \t kadar boşluk bırakarak yazdıracak bir program çıktısı almak istiyorum.
Programı yazdım fakat sadece 5 Basamaklı çıktısı doğru.123 sayısını giriş yapıp Debugging yaptığımda b5 e çok yüksek bir sayı atıyor ve b4'de de 0 rakamını atıyor.Nasıl düzeltebilirim?
  Programın sadece 5 basamaklı bir sayıda çalışmasını engellemek için if komutları koydum ama olmadı.If komutlarını kaldırınca olmayan her basamağa 0 değerini atıyor.

Kod: [Seç]
#include<stdio.h>

void bosluk (int sayi1);

int main( void )
{
int sayi;
scanf("%d", &sayi);

bosluk( sayi );
}

void bosluk ( int sayi1 )            //b birler basamağı...b2 onlar basamağı..b3 yüzler basamağı..b4 binler basamağı..b5 on binler basamağıdır.
{
int b;
int b2;
int b3;
int b4;
int b5;


b=sayi1%10;   //Birler basamağını bulmak için

if(sayi1!=b)    // eğer sayi bir basamaklıysa aşağıdaki işlemi yapmaması için if koşulunda eşitsizlik var.
b2=(sayi1%100-b)/10;

if(sayi1!=10*b2+b)
b3=(sayi1%1000-10*b2-b)/100;

if(sayi1!=100*b3+10*b2+b)
b4=(sayi1%10000-100*b3-10*b2-b)/1000;

if(sayi1!=1000*b4+100*b3+10*b2+b)
b5=sayi1-1000*b4-100*b3-10*b2-b;

printf("%d\t%d\t%d\t%d\t%d\t", b5, b4, b3, b2, b);
}
95
C Programlama Dili / Ynt: char'ı okumuyor.
« Son İleti Gönderen: okko 30 Tem 2015, 20:33:35 Prş »
Sorun fonksiyonu yanlış çağırıyormuşum.
**fonksiyonu çağırırken başında void olmamalı.
Kopyala-Yapıştır yaparken gözümden kaçmış.
Doğrusu aşağıda.Teşekkürler.
Kod: [Seç]
#include<stdio.h>

void celcius( double derece1);
void kelvin ( double derece1);
void fah (double derece1);
void reo (double derece1);


int main(void )
{
double  derece;
char terim;
int durum;

printf("Dereceyi girin:\t");
scanf("%lf", &derece);


scanf(" %c",&terim);


switch( terim )
{
case 'C':
case 'c':
durum=1;
break;

case 'K':
case 'k':
durum=2;
break;

case 'F':
case 'f':
durum=3;
break;

case 'R':
case 'r':
durum=4;
break;

default:
printf("Yanlis giris.\n");
break;
}

if(durum==1){


celcius(derece);
}
else if(durum==2){

kelvin (derece);
}
else if (durum==3){

fah (derece);
}
else if(durum==4){

reo (derece);
}

return 0;
}

void celcius( double derece1)
{
printf("%lf Celcius=\n%lf Kelvin\n%lfFahrenheit\n%lf Reomur \t...Derecedir",derece1,
derece1+273,(18/10)*derece1+32,(8/10)*derece1);
}

void kelvin( double derece1)
{
printf("%lf Kelvin=\n%lf Celcius\n%lfFahrenheit\n%lf Reomur \t...Derecedir",derece1,
derece1-273,(derece1-273)*18/10+32,(derece1-273)*8/10);
}

void fah( double derece1 )
{
printf("%lf Fahrenheit=\n%lf Celcius\n%lfKelvin\n%lf Reomur \t...Derecedir",derece1,
(derece1-32)*10/18,(derece1-32)*10/18+273,(derece1-32)*8/18);
}

void reo( double derece1)
{
printf("%lf Reomur=\n%lf Celcius\n%lfKelvin\n%lf Fahrenheit \t...Derecedir",derece1,
derece1*10/8,derece1*10/8+273,derece1*18/8+32);
}
96
C Programlama Dili / Ynt: char'ı okumuyor.
« Son İleti Gönderen: zafer11 30 Tem 2015, 20:19:25 Prş »
tek scanf le derece ve terim alınırsa (ayrıca %lf ve %c arasında boşluk bırakarak) çalışıyor
Kod: [Seç]
scanf("%lf %c", &derece,&terim);
97
C Programlama Dili / char'ı okumuyor.
« Son İleti Gönderen: okko 30 Tem 2015, 18:36:24 Prş »
Kod: [Seç]
#include<stdio.h>

void celcius( double derece1);
void kelvin ( double derece1);
void fah (double derece1);
void reo (double derece1);


int main(void )
{
double  derece;
char terim;
int durum;

printf("Dereceyi girin:\t");
scanf("%lf", &derece);
printf("ss");

scanf(" %c",&terim);


switch( terim )
{
case 'C':
case 'c':
durum=1;
break;

case 'K':
case 'k':
durum=2;
break;

case 'F':
case 'f':
durum=3;
break;

case 'R':
case 'r':
durum=4;
break;

default:
printf("Yanlis giris.\n");
break;
}

if (durum==1){


void celcius(derece);
}
else if(durum==2){

void kelvin (derece);
}
else if (durum==3){

void fah (derece);
}
else if(durum==4){

void reo (derece);
}

}

void celcius( double derece1)
{
printf("%lf Celcius=\n%lf Kelvin\n%lfFahrenheit\n%lf Reomur \t...Derecedir",derece1,
derece1+273,(18/10)*derece1+32,(8/10)*derece1);
}

void kelvin( double derece1)
{
printf("%lf Kelvin=\n%lf Celcius\n%lfFahrenheit\n%lf Reomur \t...Derecedir",derece1,
derece1-273,(derece1-273)*18/10+32,(derece1-273)*8/10);
}

void fah( double derece1 )
{
printf("%lf Fahrenheit=\n%lf Celcius\n%lfKelvin\n%lf Reomur \t...Derecedir",derece1,
(derece1-32)*10/18,(derece1-32)*10/18+273,(derece1-32)*8/18);
}

void reo( double derece1)
{
printf("%lf Reomur=\n%lf Celcius\n%lfKelvin\n%lf Fahrenheit \t...Derecedir",derece1,
derece1*10/8,derece1*10/8+273,derece1*18/8+32);
}

18 c girdiğim zaman ekranda hiç bir sonuç yazmıyor. Nerde hata var ?
98
C Programlama Dili / Ynt: dev c++ 5.11 scanf'den sonra alt satırı geçme
« Son İleti Gönderen: zafer11 30 Tem 2015, 11:42:51 Prş »
merhaba,
İlginç bir ihtiyaç oluşmuş. scanf de alt satır geçme nasıl engellenir veya alt satıra geçtikten sonra yeniden üst satır nasıl geçilir bilmiyorum.(internette de bulamadım)
Ancak karakter dizileri konusu kullanılarak yapılabilir. ekrandaal() fonksiyonu yazdım. ekrana sayılar girildikten sonra ESC tuşuna basılırsa sayıları alıyor.(Enter a basılmamış oluyor ve alt satıra geçmiyor).
Kod: [Seç]
#include<stdio.h>
#include<stdlib.h> //atof() fonksiyonunu içeriyor
#include<conio.h> //getche fonsiyonunu içerir.
float ekrandanal();
double calculateCharges ( double time1 );

int main( void )
{
float time;
int i;
double TotalCharges=0, TotalTime=0;

printf("Car\tHours\tCharge\t\n");

for(i=1;i<=3;i++)   //3 araba olduğu için i-->3 e gidiyor
{
printf("%d\t",i);
time=ekrandanal();


   printf("\b \t");//bir geri gidiyor sonra boşluk yazıyor(böylelikle ESC nin ekranda bıraktığı izi(karakteri) siliyor, sonra TAB yazıyor

TotalTime+=time;

printf("%f",calculateCharges(time) ); // fonksiyon park hesabını hesaplar

TotalCharges+=calculateCharges(time);  // o gün i.in toplam hesap için

puts("");

}
}
double calculateCharges ( double time1 )
{
double totalC=0;

if( time1<=3)       // 3saatte kadar 2 lira
{
totalC+=2.00;

}

else if(time1>3)      // 3 saati geçen her saat için 0,5 lira
{
totalC+=2+(time1-3)*0.5;
}

return totalC;
}
float ekrandanal()
{
char c , str[10];
int i=0;
while((c=getche())!=27)//getche fonksiyonu karakteri tuşa basılır basılmaz alıyor aynı zamanda ekranda da gösteriyor(diğer bir fonksiyon getch() ise aynı işi yapıp karakteri ekranda göstermiyor)
//getche ile alınan karakter c de tutuluyor ve str dizisine aktarılıyor. girilen karakter ESC (ascii kodu:27 ) basılana kadar almaya devam ediyor.(ESC yerine başka bir tuşta olabilir, asci kodunu yazarak)
{
str[i]=c;
i++;
}
str[i]='\0';  //str char dizisi null karakterle sonlandırılıyor.

return atof(str);  //atof() fonksiyonu char dizisini (string i) float a çeviriyor.(stdlib.h içeriyor bu fonksiyonu)
}
99
C Programlama Dili / dev c++ 5.11 scanf'den sonra alt satırı geçme
« Son İleti Gönderen: okko 29 Tem 2015, 23:29:51 Çrş »
Kod: [Seç]
#include<stdio.h>

double calculateCharges ( double time1 );

int main( void )
{
double time;
int i;
double TotalCharges=0, TotalTime=0;

printf("Car\tHours\tCharge\t\n");

for(i=1;i<=3;i++)   //3 araba olduğu için i-->3 e gidiyor
{
printf("%d\t",i);
scanf("%lf", &time);    //++++++++
printf("\t");

TotalTime+=time;

printf("%lf",calculateCharges(time) ); // fonksiyon park hesabını hesaplar

TotalCharges+=calculateCharges(time);  // o gün i.in toplam hesap için

puts("");

}
}
double calculateCharges ( double time1 )
{
double totalC=0;

if( time1<=3)       // 3saatte kadar 2 lira
{
totalC+=2.00;

}

else if(time1>3)      // 3 saati geçen her saat için 0,5 lira
{
totalC+=2+(time1-3)*0.5;
}

return totalC;
}

Merhabalar;
   Ben Dev C++ 5.11 ile bu kodları derlediğimde çıktı olarak Car,Hours Ve Charges için girilen değerlerin uygun yerde olmasını istiyorum fakat kodda // ++++++ olarak işaretlediğim scanf() kendinden sonraki printf() fonksiyonunu alt satıra yazdırıyor.Charge değerleri ilgili başlık altında gözükmüyor.Bunu nasıl düzeltebilirim?

100
C Programlama Dili / Ynt: siyah ekran boyutunu genişletmek
« Son İleti Gönderen: zafer11 21 Tem 2015, 11:22:55 Sal »
merhaba,
siyah ekranın (console ekranının ) üst başlık kısmına sağ tıklayıp özellikler->yerleşim den arabellek ve pencere boyutunu ayarlayabilirsiniz.
Sayfa: 1 ... 8 9 [10]