Previous Next

Program sederhana C penghitung nilai resistor

Posted by zonefreeze On - - 0 komentar

Langsung saja, tanpa basa basi, ini adalah source code dari software penghitung nilai resistor menggunakan bahasa C. Ini adalah software yang penuh ekspresi. dibuat oleh orang yang penuh ekspresi, yaitu seorang admin dari www.maniamusik.com  
//PROGRAM MENGHITUNG NILAI SUATU RESISTOR DENGAN MEMBACA GELANG WARNANYA – BAHASA C
//Ditulis oleh: captbbx
/*
<!– this is begin of the program –> */
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
//pendeklarasian fungsi
int salah();
int kerja();
int htgkembali();
int hitungcetak(double x, double y, double z);

void main()//bagian utama program
{
kerja();//memanggil fungsi kerja
}

int kerja()
{
int a, b, c, g, z, gel[3]; //pendeklarasian variabel dan array bertipe integer
double g1,g2,x,y; //pendeklarasian veriabel bertipe double
printf(“PROGRAM MENGHITUNG NILAI SUATU RESISTOR DENGAN MEMBACA GELANG WARNANYA\n”);
printf(“[0] Hitam\n[1] Coklat\n[2] Merah\n[3] jingga\n[4] Kuning\n[5] Hijau\n”);
printf(“[6] Biru\n[7] Ungu\n[8] Abu-Abu\n[9] Putih\n”);
printf(“[10] Emas\n[11] Perak\n[12] Tak Berwarna\n\n”);
printf(“nb: ketik angka/hurufnya saja!\n\n”);
for (g=0;g<=3;g++) //perulangan untuk menginput warna gelang
{
printf(“Ketikkan warna gelang ke-%d : “, g+1);
scanf(“%d”,&gel[g]); //dibaca dan dimasukkan ke dalam array gel[]
}
switch (gel[0]) //penyeleksian kondisi pada gelang pertama
{
case 0 : g1=0; break;
case 1 : g1=1; break;
case 2 : g1=2; break;
case 3 : g1=3; break;
case 4 : g1=4; break;
case 5 : g1=5; break;
case 6 : g1=6; break;
case 7 : g1=7; break;
case 8 : g1=8; break;
case 9 : g1=9; break;
default : {printf(“Masukan gelang pertama salah!\n”);}
}
switch (gel[1]) //penyeleksian kondisi pada gelang kedua
{
case 0 : g2=0; break;
case 1 : g2=1; break;
case 2 : g2=2; break;
case 3 : g2=3; break;
case 4 : g2=4; break;
case 5 : g2=5; break;
case 6 : g2=6; break;
case 7 : g2=7; break;
case 8 : g2=8; break;
case 9 : g2=9; break;
default : {printf(“Masukan gelang kedua salah!\n”);}
}
//pada bagian ini nilai resistor ditentukan berdasarkan warna gelang
switch (gel[2]) //penyeleksian kondisi pada gelang ketiga
{
case 0 : x=g1*(pow(10,1));y=g2*(pow(10,0));break;
case 1 : x=g1*(pow(10,2));y=g2*(pow(10,1));break;
case 2 : x=g1*(pow(10,3));y=g2*(pow(10,2));break;
case 3 : x=g1*(pow(10,4));y=g2*(pow(10,3));break;
case 4 : x=g1*(pow(10,5));y=g2*(pow(10,4));break;
case 5 : x=g1*(pow(10,6));y=g2*(pow(10,5));break;
case 6 : x=g1*(pow(10,7));y=g2*(pow(10,6));break;
case 7 : x=g1*(pow(10,8));y=g2*(pow(10,7));break;
case 8 : x=g1*(pow(10,9));y=g2*(pow(10,8));break;
case 9 : x=g1*(pow(10,10));y=g2*(pow(10,9));break;
case 10 : x=g1*(pow(10,0));y=g2*(pow(10,-1));break;
default : {printf(“Masukan gelang ketiga salah!\n”);}
}
//penentuan nilai toleransi
switch (gel[3]) //penyeleksian kondisi pada gelang keempat
{
case 10 : z=5;break;
case 11 : z=10;break;
case 12 : z=20;break;
default : {}
}
if ((x<=0) || (y<=0) || (z<=0)) {salah();}//jika terjadi kesalahan dalam menginput, maka akan tampil pesan ini

else
{
hitungcetak(x, y, z); //pemanggilan fungsi hitungcetak
}
}

int hitungcetak(double x,double y, double z) //fungsi untuk menghitung dan mencetak hasil
{

float res,tol, maks, min,w;//pendeklarasian veriabel bertipe float
res=x+y; //penghitungan nilai dengan menjumlahkan variabel x dan y
tol=z; //assigment pada variabel tol dengan nilai yang ada pada variabel z
maks=res+(tol/100*res); //penghitungan nilai maksimum
min=res-(tol/100*res); //penghitungan nilai minimum
puts(“\n\nBerikut hasil pengitungan:\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++”);
printf(“Nilai Resistor tersebut adalah       = %.0f OHM “, res); //nilai hambatan
printf(“atau %.2f K.OHM\n”, res/1000); //konversi ke Kilo Ohm
printf(“Dengan toleransi                     = %.0f persen\n”, tol); //mencetak nilai toleransi
printf(“Maka nilai maksimumnya adalah        = %.0f Ohm\n”, maks); //mencetak nilai maksimum
printf(“dan nilai minimumnya adalah          = %.0f Ohm\n”, min); //mencetak nilai minimum
puts(“++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nPenghitungan selesai!\n\n”);
htgkembali();
}

int htgkembali()//fungsi konfirmasi apakah kita akan menghitung kembali
{
char k;
scanf(“%c”,&k);
{
switch(k)
{
case ‘y’: kerja();break;
case ‘Y’: kerja();break;
case ‘n’: printf(“\n\n\nTerima kasih atas penggunaan program ini.\nSemoga bermanfaat.\n”);getche;exit(0);break;
case ‘N’: printf(“\n\n\nTerima kasih atas penggunaan program ini.\nSemoga bermanfaat.\n”);getche;exit(0);break;
default: {printf(“Apakah anda ingin menghitung kembali?[jawab y atau n]“);htgkembali();}
}
}

}
int salah()//fungsi yang dipanggil jika input salah
{
char s;
printf(“\nOopss!\nMasukan anda ternyata ada yang salah!\n”);
scanf(“%c”,&s);
{
switch(s)
{
case ‘y’: htgkembali();break;
case ‘Y’: htgkembali();break;
case ‘n’: exit(0);break;
case ‘N’: exit(0);break;
default:{printf(“Apakah anda ingin mengulanginya?”);htgkembali();}
}
}
}
// <!– this is end of the program –> sorry, if this project too simple… thank you…

Categories:

Tinggalkan Komentar