Logika sederhananya adalah :
1. Yang pasti kita akan menggunakan pengulangan FOR
2. Karena output yang kita hasilkan akan seperti ini dengan contoh input angka 5
Maka kita harus membuat deret pertama dulu dari atas yang hanya ada angka satunya. Karena jarak angka 1 tepat di angka 5 ditengah dalam artian 4 spasi kosong kemudian angka 1. Kita harus membuat 4 spasi dulu dengan perulangan FOR kemudian baru buat lagi angka 1.
3. Untuk baris 2 sama saja kita membuat 3 spasi kosong terlebih dahulu baru angka 1 dan 2 kemudian membuat angka ulang 1 dengan perulangan FOR kembali
4. Kita akan memanfaatkan input angka dari user (n) dalam perulangan FOR
Berikut ini merupakan sintak pada C++ untuk membuat tampilan di atas, bentuk belah ketupat tergantung dari input user. Misal input 3 maka deret belah ketupat akan sampai angka 3 saja.
Sourcode :
#include
<iostream>
using
namespace std;
int main()
{
int a, b, i, j, n, z;
int val1, val2, val3, val4, val5;
cout << "Masukkan nilai : ";
cin >> n;
cout << endl;
cout << "\t\t\t\t";
// Membentuk
bagian atas
for(i = n; i > 0; i--)
{
// Membentuk spasi kosong di depan
angka
val1 = i-1;
for(j = 1; j <= val1; j++)
{
cout <<" ";
}
// Membentuk angka setelah spasi
val2 = n-val1;
for(a = 1; a <= val2; a++)
{
cout <<a;
}
// Membentuk angka perulangan setelah
batas tengah
val3 = val2-1;
for(b = val3; b >= 1; b--)
{
cout <<b;
}
cout << endl;
cout << "\t\t\t\t";
}
// Membentuk
bagian bawah
z = n-1;
for(i = z; i > 0; i--)
{
val4 = n-i;
for(j = 1; j <= val4; j++)
{
cout <<" ";
}
for(a = 1; a <= i; a++)
{
cout <<a;
}
val5 = i-1;
for(b = val5; b >= 1; b--)
{
cout <<b;
}
cout << endl;
cout << "\t\t\t\t";
}
cout << endl;
cout << endl;
return 0;
}
Error min dari codingan yang
ReplyDelete//membentuk bagian bawah
z = n-1;
Error di rumus z nya
udah di copy semua gak gan ? errornya apa ? mungkin ada yang ketinggalan deklarasinya, ane coba copy build lagi gak ada mslah kok gan...
Delete