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