Akademisyenler öncülüğünde matematik/fizik/bilgisayar bilimleri soru cevap platformu
0 beğenilme 0 beğenilmeme
367 kez görüntülendi
image Kare dalga sinyali çizimi..C programlama konsol üzerinden:...

Acaba kodda iyileştirmeler yapılabilir mi ?
#include <stdio.h> int main() { int i;
int c1;//1 sırası yıldız
int c0;// sırası yıldız
int P;//periyot
int DO;//doluluk oranı
int sayac=0;//doluluk oranı için toplam boşluk
printf("Periyot degeri giriniz:\n");
scanf("%d",&P);
printf("Doluluk orani giriniz:\n");

scanf("%d",&DO);


c1 = (double)(P*DO/100);//1 sırası

c0 = (double)(P-(P*(DO/100)));//0 sırası

printf("1|");
for(i =1;i<=c1;i++)//doluluk değerine kadar yıldız yazdımak için gerekli for döngüsü
{
if(i<10)//tek basamaklı değer için yıldız.
{
printf("**");
sayac+=2;
}
else{
printf("***");//3 basamaklı değer için yıldız
sayac+=3;
}
}
for(i=0;i<11;i++)//0 1 arası düz çizgiler.
printf("\n |");
printf("\n0|");//0 satırına geçiren komut.
for(i =0;i<sayac+1;i++)//1 satırındaki yıldız sayısı kadar boşluk.
printf(" ");
for(i=c1;i<c0-1;i++)//0 satırındaki yıldız sayısı için.
{
if(i<10)
printf("**");
else
printf("***");
}
if(P==0 && DO==0)//doluluk oranı ve periyor 0 olursa yıldız basmaması için gerekli önlem.
return 0;
else
{ if(P<=10 )

printf("**");
else
{if(c1>10)//0 satırı için 2 basamaklı değerde problem olmaması için yazılan kod. printf("**");
else
printf("***");
} } printf("\n ");//periyor numaralarının bi alt satıra geçmesi için..
for(i=1;i<=P;i++)//periyot rakamları.
printf(" %d",i);
printf("\n");
return main(); //kodu tekrar çalıştırmak için kod.
return 0; }

Veri Bilimi kategorisinde (159 puan) tarafından  | 367 kez görüntülendi
20,259 soru
21,785 cevap
73,459 yorum
2,341,799 kullanıcı