









Dear Kanjeng Pembaca sekalian,… berikut ini kembali ada soal… agak menarik dimana tidak hanya bermain tentang array, looping… namun juga berbagai if then else alias kondisi …!!! Disini sebelum membikin program … harus dipahami dulu persoalannya … dan apa yang diminta… !!! Baru setelah memahami baru kira-kira dirancang bagaimana programnya baru deeegh bikin coding … so soalnya sebagai berikut :
Naaagh pahami dulu soalnya… dan yang menarik adalah outputnya sangat tergantung dari type A atau type B … kalau type A, maka diawal baris itu ada spasi… sebaliknya type B tidak ada… kemudian barisnya ini kombinasi antara . dan – ….!!! Pattern ini sangat tergantung dari input angka pertama kali… kalau 2, maka muncul patternnya akan ditanya 2 kali … dst.. !!! Detilnya dapat dilihat pada output berikut :
Tentu langkah pertama adalah memastikan bahwa input sudah dilakukan … tentu pertama kali akan ditanyakan berapa banyak bilangan yang akan dimasukkan …!!! So tentunya bisa menggunakan command scanf(“%d”, &T); …!!! Selanjutnya berdasarkan data tersebut… maka dibikin looping dengan for statement… untuk memasukkan … pattern, berapa banyak baris dan berapa banyak garis / titik yang akan dibikin … dengan statement scanf(“%s%d%d”, &pattern[i], &N[i], &M[i]); …!!!
Berikutnya di proses… kalau pattern nya A,… dan nilai awal modulus 2 sama dengan nol… maka cetak dulu ‘ ‘ …!!! Berikutnya dicetak . dan ‘-‘ … demikian seterus nya… sampai dengan nilai baris tercapai… dan tentu saja count … er untuk cetak garis sangat tergantung parameter M[i] …!!! Demikian pula sebaliknya jika B,… dimana baris awal tidak ada spasi … alias dibalik … modulus 2 sisa 1 … maka ada spasi …!!! Source code untuk persoalan tersebut dapat dilihat sbb … :
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <string.h>#include <math.h>int main(){int T;inti, a, b;char pattern[100];int N[100], M[100];scanf(“%d”, &T);for (i=1; i <= T; i++){scanf(“%s%d%d”, &pattern[i], &N[i], &M[i]);}printf(“\n”);for (i=1; i <= T; i++){printf(“Pattern no : %d\n”, i);if (pattern[i] == ‘A’){for (a=0; a < N[i] ; a++){if (a % 2 == 0){printf(” “);}for (b=0; b < M[i]; b++ ){if (b % 2 == 0){printf(“.”);}else{printf(“-“);}}printf(“\n”);}}else{if (pattern[i] == ‘B’){for (a=0; a < N[i] ; a++){if (a % 2 == 1){printf(” “);}for (b=0; b < M[i]; b++ ){if (b % 2 == 0){printf(“-“);}else{printf(“.”);}}printf(“\n”);}}}}return 0;}
Leave a Reply