Senin, 21 Juni 2010

Pemrograman C++ - Operasi Segitiga

Buzz It
Pemrograman C++ - Operasi Segitiga

Pemrograman C++ - Operasi Segitiga

#include <stdio.h>

#include <math.h>

void main()

{ //deklarsi variable

float a,b,c,luas,keliling,luas2,s,alas,alas2,tinggi,tinggi2;

float setengahalas,setengahalas2,sisimiring,sisimiring2,sisi,sisi2;

int ulangi,jenis,ulangi2;

//awal pengulangan menu utama

do

{

//instruksi menu utama

printf("OPERASI SEGITIGA\n");

printf("Pilih jenis segitiga\n");

printf("1. segitiga sembarang\n");

printf("2. segitiga siku-siku\n");

printf("3. segitiga sama kaki\n");

printf("4. segitiga sama sisi\n");

scanf_s("%d",&jenis);

//masuk ke pilihan segitiga sembarang

if(jenis==1)

{

//awal pengulangan segitiga sembarang

do

{

//cetak instruksi segitiga sembarang

printf("Masukan ketiga sisi segitiga sembarang.\n");

printf("sisi a = ");

scanf_s("%f",&a);

printf("sisi b = ");

scanf_s("%f",&b);

printf("sisi c = ");

scanf_s("%f",&c);

//operasi bila data input error

if(a<=0 || b<=0 || c<=0)

{

printf("Maaf, data yang anda masukan tidak valid.\n");

printf("Apakah anda ingin mencoba lagi?\n");

printf("1. YA\n");

printf("2. TIDAK(kembali ke menu utama)\n");

printf("3. TIDAK(keluar)\n\n\n");

scanf_s("%d",&ulangi);

}

//operasi segitiga sembarang

else

{

keliling=a+b+c;

s=keliling/2;

luas2=s*(s-a)*(s-b)*(s-c);

luas=sqrt(luas2);

}

//cetak hasil segitiga sembarang

printf("sisi pertama = %f\n",a);

printf("sisi kedua = %f\n",b);

printf("sisi ketiga = %f\n",c);

printf("Luas = %f\n",luas);

printf("Keliling = %f\n\n\n",keliling);

printf("Apakah anda ingin melakukan perhitungan lagi? \n");

printf("1. YA\n");

printf("2. TIDAK(kembali ke menu utama)\n");

printf("3. TIDAK(keluar)\n");

scanf_s("%d",&ulangi);

}

//akhir pengulangan segitiga sembarang

while(ulangi==1);

}

//masuk ke segitigasiku-siku

else if(jenis==2)

{

//awal pengulangan segitiga siku-siku

do

{

//cetak instruksi segitiga siku-siku

printf("Masukan elemen segitiga siku-siku.\n");

printf("(bila tidak diketahui, masukan angka 0\n");

printf("alas = \n");

scanf_s("%f",&alas);

printf("tinggi = \n");

scanf_s("%f",&tinggi);

printf("sisi miring = \n");

scanf_s("%f",&sisimiring);

//operasi bila hanya diketahui alas dan tinggi segitiga siku-siku

if(alas!=0 && tinggi!=0 && sisimiring==0)

{

alas2=pow(alas,2);

tinggi2=pow(tinggi,2);

sisimiring2=tinggi2+alas2;

sisimiring=sqrt(sisimiring2);

luas=alas*tinggi/2;

keliling=alas+tinggi+sisimiring;

}

//operasi bila hanya diketahui alas dan sisi miring segitiga siku-siku

else if(alas!=0 && sisimiring!=0 && tinggi==0)

{

alas2=pow(alas,2);

sisimiring2=pow(sisimiring,2);

tinggi2=sisimiring2-alas2;

tinggi=sqrt(alas2);

luas=alas*tinggi/2;

keliling=alas+tinggi+sisimiring;

}

//operasi bila hanya diketahui tinggi dan sisi miring segitiga siku-siku

else if(tinggi!=0 && sisimiring!=0 && alas==0)

{

tinggi2=pow(tinggi,2);

sisimiring2=pow(sisimiring,2);

alas2=sisimiring2-tinggi2;

alas=sqrt(alas2);

luas=alas*tinggi/2;

keliling=alas+tinggi+sisimiring;

}

//operasi bila data yang dimasukan error

else

{

printf("Maaf, data yang anda masukan tidak valid.\n");

printf("Apakah anda ingin mencoba lagi?\n");

printf("1. YA\n");

printf("2. TIDAK(kembali ke menu utama)\n");

printf("3. TIDAK(keluar)\n\n\n");

scanf_s("%d",&ulangi);

}

//cetak hasil segitiga siku-siku

printf("alas = %f\n",alas);

printf("tinggi = %f\n",tinggi);

printf("sisi miring = %f\n",sisimiring);

printf("luas = %f\n",luas);

printf("keliling = %f\n\n\n",keliling);

printf("Apakah anda ingin mengulang perhitungan?\n");

printf("1. YA\n");

printf("2. TIDAK(kembali ke menu utama)\n");

printf("3. TIDAK(keluar)\n");

scanf_s("%d",&ulangi);

}

//akhir pengulangan segitiga siku-siku

while(ulangi==1);

}

//masuk ke pilihan segitiga sama kaki

else if(jenis==3)

{

//awal pengulangan segitiga sama kaki

do

{

//cetak instruksi

printf("Masukan elemen segitiga sama kaki\n");

printf("Bila tidak diketahui, masukan angka 0.\n");

printf("alas = ");

scanf_s("%f",&alas);

printf("tinggi = ");

scanf_s("%f",&tinggi);

printf("sisi miring = ");

scanf_s("%f",&sisimiring);

//operasi bila hanya diketahui alas dan tinggi segitiga sama kaki

if(alas!=0 && tinggi!=0 && sisimiring==0)

{

setengahalas=alas/2;

setengahalas2=setengahalas*setengahalas;

tinggi2=tinggi*tinggi;

sisimiring2=tinggi2+setengahalas2;

sisimiring=sqrt(sisimiring2);

luas=setengahalas*tinggi;

keliling=sisimiring*2+alas;

}

//operasi bila hanya diketahui alas dan sisi miring segitiga sama kaki

else if(alas!=0 && tinggi==0 && sisimiring!=0)

{

setengahalas=alas/2;

setengahalas2=pow(setengahalas,2);

sisimiring2=pow(sisimiring,2);

tinggi2=sisimiring2-setengahalas2;

tinggi=sqrt(tinggi2);

luas=setengahalas*tinggi;

keliling=sisimiring*2+alas;

}

//operasi bila hanya dioketahui tinggi dan sisi miring segitiga sama kaki

else if(alas==0 && tinggi!=0 && sisimiring!=0)

{

sisimiring2=pow(sisimiring,2);

tinggi2=pow(tinggi,2);

setengahalas2=sisimiring2-tinggi2;

setengahalas=sqrt(setengahalas2);

luas=setengahalas*tinggi;

keliling=sisimiring*2+alas;

}

//operasi bila data error

else

{

printf("Maaf, data yang anda masukan tidak valid.\n");

printf("Apakah anda ingin mencoba lagi?\n");

printf("1. YA\n");

printf("2. TIDAK(kembali ke menu utama)\n");

printf("3. TIDAK(keluar)\n\n\n");

scanf_s("%d",&ulangi);

}

//cetak hasil segitiga sama kaki

printf("alas = %f\n",alas);

printf("tinggi = %f\n",tinggi);

printf("sisi miring = %f\n",sisimiring);

printf("luas = %f\n",luas);

printf("keliling = %f\n\n\n",keliling);

printf("Apakah anda ingin mengulang perhitungan?");

printf("1. YA\n");

printf("2. TIDAK(kembali ke menu utama)\n");

printf("3. TIDAK(keluar)\n");

scanf_s("%d",&ulangi);

}

//akhir pengulangan segitiga sama kaki

while(ulangi==1);

}

//masuk ke pilihan segitiga sama sisi

else if(jenis==4)

{

//awal pengulangan segitiga sama sisi

do

{

//cetak instruksi

printf("Masukan elemen segitiga sama sisi.\n");

printf("Bila tidak diketahui masukan angka 0.\n");

printf("sisi = ");

scanf_s("%f",&sisi);

printf("luas = ");

scanf_s("%f",&luas);

printf("keliling = ");

scanf_s("%f",&keliling);

//operasi bila sisi yang diketahui

if(sisi!=0)

{

luas=sisi*sisi/4*1.732051;

keliling=sisi*3;

}

//operasi bila luas yang diketahui

else if(luas!=0)

{

sisi2=luas*4/1.732051;

sisi=sqrt(sisi2);

keliling=sisi*3;

}

//operasi bila keliling yang diketahui

else if(keliling!=0)

{

sisi=keliling/3;

luas=sisi*sisi/4*1.732051;

}

//cetak hasil segitiga sama sisi

printf("sisi = %f\n",sisi);

printf("luas = %f\n",luas);

printf("keliling = %f\n\n\n",keliling);

printf("Apakah anda ingin mengulang perhitungan?");

printf("1. YA\n");

printf("2. TIDAK(kembali ke menu utama)\n");

printf("3. TIDAK(keluar)\n");

scanf_s("%d",&ulangi);

}

//akhir pengulangan segitiga sama sisi

while(ulangi==1);

}

//pemberitahuan bila pilihan pada menu utana salah

else

{

printf("Maaf pilihan anda salah, apakah nada ingin mengulangi?\n");

printf("1. YA\n");

printf("2. TIDAK(keluar)");

scanf_s("%d",&ulangi2);

}



}

//akhir pengulangan menu utama

while(ulangi==2 || ulangi2==1);

}

Sumber : Praktikum Mata Kuliah – STMIK Mercusuar.



Tidak ada komentar:

Posting Komentar